6.3. type
类型设置为 internal,或对于外部监听程序,设置为 route, loadbalancer, nodeport, ingress 或 cluster-ip。您还可以配置 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 配置公告地址时,AMQ 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