第 4 章 创建 OpenShift 路由以访问 Kafka 集群


创建 OpenShift 路由以访问 OpenShift 之外的 Kafka 集群。

此流程描述了如何在 OpenShift 环境外将 Kafka 集群公开给客户端。在 Kafka 集群公开后,外部客户端可以从 Kafka 集群生成和使用信息。

要创建 OpenShift 路由,route 监听程序添加到 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 oc CLI 工具执行一些步骤。

流程

  1. 在 Web 控制台中进入到 Operators > Installed Operators 页面,然后点 Red Hat Integration - AMQ Streams 来显示 Operator 详情。
  2. 选择 Kafka 页面来显示已安装的 Kafka 集群。
  3. 点您要配置的 Kafka 集群的名称查看其详情。

    在这个示例中,我们使用名为 my-cluster 的 Kafka 集群。

  4. 选择 Kafka 集群的 my-clusterYAML 页面。
  5. 添加路由侦听器配置,以创建名为 listener1 的 OpenShift 路由。

    侦听器配置必须设置为 route 类型。您可以在 Kafka 配置中的 listeners 中添加监听程序配置。

    外部路由监听程序配置

    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。

  6. 保存更新的配置。
  7. 选择 Kafka 集群 my-clusterResources 页面,以查找客户端需要的连接信息。

    Resources 页面中,您将查找路由监听程序和您连接到 Kafka 集群所需的公共集群证书的详情。

  8. 点为 Kafka 集群创建的 my-cluster-kafka-listener1-bootstrap 路由名称来显示路由详情。
  9. 记录主机名。

    主机名在 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"}'

  10. 返回到 Resources 页面,然后点 my-cluster-cluster-ca-cert 的名称以显示用于访问 Kafka 集群的 secret 详情。

    ca.crt 证书文件包含 Kafka 集群的公共证书。

    您需要证书才能访问 Kafka 代理。

  11. 生成 ca.crt 公共证书文件的本地副本。

    您可以复制证书的详细信息,或使用 OpenShift oc 工具提取证书。

    提取公共证书

    oc extract secret/my-cluster-cluster-ca-cert --keys=ca.crt --to=- > ca.crt

  12. 使用 keytool 为公共集群证书创建本地信任存储。

    创建本地信任存储

    keytool -keystore client.truststore.jks -alias CARoot -import -file ca.crt

    出现提示时,创建用于访问 truststore 的密码。

    truststore 在 Kafka 客户端中指定,用于身份验证对 Kafka 集群的访问。

    现在,您已准备好开始发送和接收信息。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.