第 3 章 配置外部监听程序
使用外部监听程序向 OpenShift 环境外的客户端公开您的 AMQ Streams Kafka 集群。
在外部监听程序配置中指定要公开 Kafka 的连接 类型。
-
类型NodePort 使用NodePort服务 -
LoadBalancer 使用Loadbalancer类型服务 -
Ingress使用 KubernetesIngress和 Kubernetes 的 NGINX Ingress Controller -
路由使用 OpenShift路由和 HAProxy 路由器
有关监听器配置的更多信息,请参阅 GenericKafkaListener 模式参考。
注意
路由 只在 OpenShift 中被支持
3.1. 使用节点端口访问 Kafka
此流程描述了如何使用节点端口从外部客户端访问 AMQ Streams Kafka 集群。
要连接到代理,您需要 Kafka bootstrap 地址 的主机名和端口号,以及用于身份验证的证书。
先决条件
- OpenShift 集群
- 一个正在运行的 Cluster Operator
步骤
配置
Kafka资源,并将外部监听程序设置为nodeport类型。例如:
apiVersion: kafka.strimzi.io/v1beta1 kind: Kafka spec: kafka: # ... listeners: - name: external port: 9094 type: nodeport tls: true authentication: type: tls # ... # ... zookeeper: # ...创建或更新资源。
oc apply -f KAFKA-CONFIG-FILE为每个 Kafka 代理和外部 bootstrap 服务 创建
NodePort类型服务。bootstrap 服务将外部流量路由到 Kafka 代理。用于连接的节点地址被传播到 Kafka 自定义资源的状态。也使用与
Kafka资源相同的名称来创建用于验证 kafka 代理身份的集群 CA 证书。从 Kafka
资源的状态检索您用来访问 Kafka 集群的 bootstrap 地址。oc get kafka KAFKA-CLUSTER-NAME -o=jsonpath='{.status.listeners[?(@.type=="external")].bootstrapServers}{"\n"}'如果启用了 TLS 加密,请提取代理认证机构的公共证书。
oc get secret KAFKA-CLUSTER-NAME-cluster-ca-cert -o jsonpath='{.data.ca\.crt}' | base64 -d > ca.crt使用 Kafka 客户端中提取的证书来配置 TLS 连接。如果启用了任何身份验证,您还需要配置 SASL 或 TLS 身份验证。