5.2. 使用负载均衡器访问 Kafka
这个步骤描述了如何使用负载均衡器从外部客户端访问 AMQ Streams Kafka 集群。
要连接到代理,您需要 bootstrap 负载均衡器的地址以及用于 TLS 加密的证书。
先决条件
- 一个 OpenShift 集群
- 正在运行的 Cluster Operator
流程
配置一个
Kafka
资源,并将外部监听程序设置为loadbalancer
类型。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建或更新资源。
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为每个 Kafka 代理创建
loadbalancer
类型服务和负载均衡器,以及外部 bootstrap 服务。bootstrap 服务将外部流量路由到所有 Kafka 代理。用于连接的 DNS 名称和 IP 地址会传播到每个服务的状态
。在 secret <cluster
_name> -cluster-ca-cert 中也创建了用于验证 kafka 代理身份的集群
CA 证书。检索可用于从
Kafka
资源状态访问 Kafka 集群的 bootstrap 服务地址。oc get kafka <kafka_cluster_name> -o=jsonpath='{.status.listeners[?(@.name=="<listener_name>")].bootstrapServers}{"\n"}'
oc get kafka <kafka_cluster_name> -o=jsonpath='{.status.listeners[?(@.name=="<listener_name>")].bootstrapServers}{"\n"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc get kafka my-cluster -o=jsonpath='{.status.listeners[?(@.name=="external")].bootstrapServers}{"\n"}'
oc get kafka my-cluster -o=jsonpath='{.status.listeners[?(@.name=="external")].bootstrapServers}{"\n"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果启用了 TLS 加密,提取代理证书颁发机构的公共证书。
oc get secret KAFKA-CLUSTER-NAME-cluster-ca-cert -o jsonpath='{.data.ca\.crt}' | base64 -d > ca.crt
oc get secret KAFKA-CLUSTER-NAME-cluster-ca-cert -o jsonpath='{.data.ca\.crt}' | base64 -d > ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Kafka 客户端中提取的证书配置 TLS 连接。如果您启用了任何身份验证,您还需要在客户端中配置它。