第 4 章 创建 OpenShift 路由以访问 Kafka 集群
创建 OpenShift 路由以访问 OpenShift 之外的 Kafka 集群。
此流程描述了如何在 OpenShift 环境外将 Kafka 集群公开给客户端。在 Kafka 集群公开后,外部客户端可以从 Kafka 集群生成和使用信息。
要创建 OpenShift 路由,route 监听程序添加到 OpenShift 上安装的 Kafka 集群的配置中。
OpenShift Route 地址包括 Kafka 集群的名称、侦听器的名称以及它在其中创建的命名空间的名称。例如,my-cluster-kafka-listener1-bootstrap-streams-kafka (<cluster_name>-kafka-<listener_name>-bootstrap-<namespace>)。请注意,地址的整个长度不超过 63 个字符的最大值。
先决条件
- 您已在 OpenShift 上创建 Kafka 集群。
-
您需要 OpenJDK
keytool管理证书。 -
(可选)您可以使用 OpenShift
ocCLI 工具执行一些步骤。
流程
- 在 Web 控制台中进入 Operators > ; Installed Operators 页面,然后选择 Streams for Apache Kafka 来显示 Operator 详情。
- 选择 Kafka 页面来显示已安装的 Kafka 集群。
点您要配置的 Kafka 集群的名称查看其详情。
在这个示例中,我们使用名为
my-cluster的 Kafka 集群。-
选择 Kafka 集群的
my-cluster的 YAML 页面。 添加路由侦听器配置,以创建名为
listener1的 OpenShift 路由。侦听器配置必须设置为
route类型。您可以在 Kafka 配置中的listeners中添加监听程序配置。外部路由监听程序配置
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 客户端通过端口 443 连接默认的路由器端口,但流量会被路由到您配置的端口,本例中为 9094。
- 保存更新的配置。
选择 Kafka 集群
my-cluster的 Resources 页面,以查找客户端需要的连接信息。在 Resources 页面中,您将查找路由监听程序和您连接到 Kafka 集群所需的公共集群证书的详情。
-
点为 Kafka 集群创建的
my-cluster-kafka-listener1-bootstrap路由名称来显示路由详情。 记录主机名。
主机名在 Kafka 客户端中使用端口 443 指定,作为连接到 Kafka 集群的 bootstrap 地址。
您还可以通过进入到 Networking > Routes 并选择 stream
-kafka项目来找到 bootstrap 地址。或者,您可以使用
oc工具提取 bootstrap 详情。提取 bootstrap 信息
oc get routes my-cluster-kafka-listener1-bootstrap -o=jsonpath='{.status.ingress[0].host}{"\n"}'oc get routes my-cluster-kafka-listener1-bootstrap -o=jsonpath='{.status.ingress[0].host}{"\n"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 返回到 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
oc extract secret/my-cluster-cluster-ca-cert --keys=ca.crt --to=- > ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
keytool为公共集群证书创建本地信任存储。创建本地信任存储
keytool -keystore client.truststore.jks -alias CARoot -import -file ca.crt
keytool -keystore client.truststore.jks -alias CARoot -import -file ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出现提示时,创建用于访问 truststore 的密码。
truststore 在 Kafka 客户端中指定,用于身份验证对 Kafka 集群的访问。
现在,您已准备好开始发送和接收信息。