6.2. 指定监听程序类型
将内部监听程序的类型设置为 internal
。对于外部监听程序,请从 route
,loadbalancer
,nodeport
, 或 ingress
选择。您还可以配置 cluster-ip
侦听器,这是用于构建自定义访问机制的内部类型。
- internal
您可以使用
tls
属性使用或不加密配置内部监听程序。内部监听程序
配置示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - route
配置外部监听程序,以使用 OpenShift
Routes
和 HAProxy 路由器公开 Kafka。为每个 Kafka 代理 pod 创建一个专用
Route
。创建额外Route
以作为 Kafka bootstrap 地址。Kafka 客户端可以使用这些Routes
连接到端口 443 上的 Kafka。客户端通过端口 443 (默认路由器端口)连接,但流量会路由到您配置的端口,本例中为9094
。路由
监听程序配置示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ingress
配置外部监听程序,以使用 Kubernetes
Ingress
和 Ingress NGINX Controller for Kubernetes 公开 Kafka。为每个 Kafka 代理 pod 创建一个专用
Ingress
资源。创建额外的Ingress
资源,以用作 Kafka bootstrap 地址。Kafka 客户端可以使用这些Ingress
资源在端口 443 上连接到 Kafka。客户端通过端口 443 (默认控制器端口)连接,但流量会路由到您配置的端口,以下示例中为9095
。您必须使用
GenericKafkaListenerConfigurationBootstrap
和GenericKafkaListenerConfigurationBroker
属性指定 bootstrap 和 per-broker 服务使用的主机名。ingress
侦听器配置示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意使用
Ingress
的外部监听程序当前只通过 Ingress NGINX Controller for Kubernetes 测试。- LoadBalancer
配置外部监听程序,以使用
Loadbalancer
类型Service
来公开 Kafka。为每个 Kafka 代理 pod 创建一个新的 loadbalancer 服务。创建了一个额外的负载均衡器来充当 Kafka bootstrap 地址。loadBalancers 侦听指定的端口号,本例中为端口
9094
。您可以使用
loadBalancerSourceRanges
属性配置 源范围 来限制对指定 IP 地址的访问。loadbalancer
侦听器配置示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - nodeport
配置外部监听程序,以使用
NodePort
类型Service
来公开 Kafka。Kafka 客户端直接连接到 OpenShift 的节点。创建额外的
NodePort
服务类型作为 Kafka bootstrap 地址。为 Kafka 代理 pod 配置公告地址时,Apache Kafka 的 Streams 使用运行给定 pod 的节点的地址。
您可以使用
preferredNodePortAddressType
属性将 检查的第一个地址类型配置为节点地址。nodeport
侦听器配置示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意目前,在使用节点端口公开 Kafka 集群时不支持 TLS 主机名验证。
- cluster-ip
配置内部监听程序,以使用每个代理的
ClusterIP
类型Service
来公开 Kafka。侦听器不使用无头服务及其 DNS 名称将流量路由到 Kafka 代理。在使用无头服务时,您可以使用这类监听程序公开 Kafka 集群。您可以将其与自定义访问机制一起使用,例如使用特定 Ingress 控制器或 OpenShift 网关 API 的机制。
为每个 Kafka 代理 pod 创建一个新的
ClusterIP
服务。该服务被分配一个ClusterIP
地址,来作为带有每个代理端口号的 Kafka bootstrap 地址。例如,您可以将监听程序配置为通过带有 TCP 端口配置的 Nginx Ingress Controller 公开 Kafka 集群。cluster-ip
侦听器配置示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow