3.2. 使用 loadbalancers 访问 Kafka
这个步骤描述了如何使用 loadbalancers 从外部客户端访问 AMQ Streams Kafka 集群。
要连接到代理,您需要 bootstrap 负载均衡器的地址, 以及用于 TLS 加密的证书。
先决条件
- OpenShift 集群
- 一个正在运行的 Cluster Operator
流程
配置
Kafka
资源,并将外部监听程序设置为loadbalancer
类型。例如:
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka spec: kafka: # ... listeners: - name: external port: 9094 type: loadbalancer tls: true # ... # ... zookeeper: # ...
创建或更新资源。
oc apply -f KAFKA-CONFIG-FILE
LoadBalancer 类型
服务和负载均衡器是为每个 Kafka 代理和一个外部 bootstrap 服务 创建的。bootstrap 服务将外部流量路由到所有 Kafka 代理。用于连接的 DNS 名称和 IP 地址会传播到每个服务的状态
。也使用与
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 身份验证。