第 4 章 创建 OpenShift 路由以访问 Kafka 集群
创建一个 OpenShift 路由,以访问 OpenShift 之外的 Kafka 集群。
此流程描述了如何将 Kafka 集群公开给 OpenShift 环境之外的客户端。公开 Kafka 集群后,外部客户端就可以生成和使用 Kafka 集群中的消息。
要创建 OpenShift 路由,路由 监听程序会添加到 OpenShift 上安装的 Kafka 集群的配置中。
OpenShift Route 地址包括 Kafka 集群的名称、侦听程序的名称以及在其中创建命名空间的名称。例如: my-cluster-kafka-listener1-bootstrap-amq-streams-kafka (<cluster_name> -kafka- <listener_name> -bootstrap- <namespace>)。请注意,地址的整个长度不超过 63 个字符的最大值。
先决条件
- 您已在 OpenShift 中创建了一个 Kafka 集群。
-
您需要 OpenJDK
keytool管理证书。 -
(可选)您可以使用 OpenShift
ocCLI 工具执行一些步骤。
流程
- 在 web 控制台中导航到 Operators > Installed Operators 页面,选择 Red Hat Integration - AMQ Streams 以显示 Operator 详情。
- 选择 Kafka 页面来显示已安装的 Kafka 集群。
点您要配置的 Kafka 集群的名称来查看其详情。
本例中使用名为
my-cluster的 Kafka 集群。-
选择 Kafka 集群
my-cluster的 YAML 页面。 添加路由监听程序配置,以创建名为
listener1的 OpenShift 路由。侦听器配置必须设置为
路由类型。您可以在 Kafka 配置中的监听程序中添加监听程序配置。外部路由监听程序配置
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster namespace: amq-streams-kafka spec: kafka: # ... listeners: # ... - name: listener1 port: 9094 type: route tls: true # ...客户端在端口 443(默认路由器端口)上连接,但流量会路由到您配置的端口,本例中为 9094。
- 保存更新的配置。
选择 Kafka 集群
my-cluster的 Resources 页面,以查找您需要的连接信息。在 Resources 页面中,您可以查找路由监听程序和需要连接到 Kafka 集群的公共集群证书的详情。
-
点为 Kafka 集群创建的
my-cluster-kafka-listener1-bootstrap路由的名称,以显示路由详情。 记录主机名。
主机名在 Kafka 客户端中使用端口 443 指定,作为连接到 Kafka 集群的 bootstrap 地址。
您还可以通过导航到 Networking > Routes 并选择
amq-streams-kafka项目来定位 bootstrap 地址,以显示命名空间中创建的路由。或者,您可以使用
oc工具提取 bootstrap 详情。提取 bootstrap 信息
oc get routes my-cluster-kafka-listener1-bootstrap -o=jsonpath='{.status.ingress[0].host}{"\n"}'返回到 Resources 页面,点
my-cluster-cluster-ca-cert的名称,以显示访问 Kafka 集群的 secret 详情。ca.crt证书文件包含 Kafka 集群的公共证书。您需要证书来访问 Kafka 代理。
生成
ca.crt公共证书文件的本地副本。您可以复制证书的详细信息,或者使用 OpenShift
oc工具提取它们。提取公共证书
oc extract secret/my-cluster-cluster-ca-cert --keys=ca.crt --to=- > ca.crt使用
密钥tool 为公共集群证书创建本地信任存储。创建本地信任存储
keytool -keystore client.truststore.jks -alias CARoot -import -file ca.crt在提示时,创建用于访问 truststore 的密码。
信任存储在 Kafka 客户端中指定,用于向 Kafka 集群验证访问权限。
您现在已准备好开始发送和接收信息。