13.2.4.2. type
该类型设置为 internal
,或针对外部监听器,作为 路由
、loadbalancer
、nodeport
或 ingress
。
- internal
您可以使用
tls
属性使用或不加密配置内部监听程序。内部
监听程序配置示例#... spec: kafka: #... listeners: #... - name: plain port: 9092 type: internal tls: false - name: tls port: 9093 type: internal tls: true authentication: type: tls #...
- Route
配置外部侦听器以使用 OpenShift
Route
和 HAProxy 路由器公开 Kafka。为每个 Kafka 代理 pod 创建一个专用
路由
。创建一个额外的Route
来充当 Kafka bootstrap 地址。Kafka 客户端可以使用这些路由
连接端口 443 上的 Kafka。客户端在端口 443(默认路由器端口)上连接,但流量将路由到您配置的端口,本例中为9094
。路由
监听程序配置示例#... spec: kafka: #... listeners: #... - name: external1 port: 9094 type: route tls: true #...
- Ingress
配置一个外部监听程序以使用 Kubernetes
Ingress
和 Kubernetes 的 NGINX Ingress Controller 公开 Kafka。为每个 Kafka 代理 Pod 创建一个专用的
Ingress
资源。创建一个额外的Ingress
资源来充当 Kafka bootstrap 地址。Kafka 客户端可以使用这些Ingress
资源连接到端口 443 上的 Kafka。客户端在端口 443(默认控制器端口)上连接,但流量会路由到您配置的端口,以下示例中是9095
。您必须使用 GenericKafkaListenerConfigurationBootstrap 和
GenericKafkaListenerConfiguration
Broker 属性指定 bootstrap 和每个broker 服务使用的主机名。ingress
侦听器配置示例#... spec: kafka: #... listeners: #... - name: external2 port: 9095 type: ingress tls: true authentication: type: tls configuration: bootstrap: host: bootstrap.myingress.com brokers: - broker: 0 host: broker-0.myingress.com - broker: 1 host: broker-1.myingress.com - broker: 2 host: broker-2.myingress.com #...
注意使用
Ingress
的外部监听程序目前只使用 Kubernetes 的 NGINX Ingress Controller 测试。- LoadBalancer
配置一个外部监听程序来公开 Kafka
Loadbalancer
类型服务
。为每个 Kafka 代理 pod 创建一个新的负载均衡器服务。创建一个额外的负载均衡器来充当 Kafka bootstrap 地址。Loadbalancers 侦听指定的端口号,以下示例中是端口
9094
。您可以使用
loadBalancerSourceRanges
属性配置 源范围,以限制对指定 IP 地址的访问。loadbalancer
侦听器配置示例#... spec: kafka: #... listeners: - name: external3 port: 9094 type: loadbalancer tls: true configuration: loadBalancerSourceRanges: - 10.0.0.0/8 - 88.208.76.87/32 #...
- nodeport
配置外部侦听器以使用
NodePort
类型服务
公开 Kafka。Kafka 客户端直接连接到 OpenShift 节点。创建额外的
NodePort
类型服务作为 Kafka bootstrap 地址。在为 Kafka 代理 Pod 配置公告的地址时,AMQ Streams 使用运行给定 pod 的节点的地址。您可以使用
preferredNodePortAddressType
属性配置 第一个地址类型作为节点地址检查。nodeport
侦听器配置示例#... spec: kafka: #... listeners: #... - name: external4 port: 9095 type: nodeport tls: false configuration: preferredNodePortAddressType: InternalDNS #...
注意在使用节点端口公开 Kafka 集群时,当前不支持 TLS 主机名验证。