4.4. 使用 OpenShift 路由访问 Kafka


此流程描述了如何使用路由从 OpenShift 外部的外部客户端访问 AMQ Streams Kafka 集群。

要连接到代理,您需要一个路由 bootstrap 地址 的主机名,以及用于 TLS 加密的证书。

对于使用路由访问,端口始终为 443。

先决条件

  • OpenShift 集群
  • 正在运行的 Cluster Operator

流程

  1. 配置 Kafka 资源,将外部监听程序设置为 route 类型。

    例如:

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      labels:
        app: my-cluster
      name: my-cluster
      namespace: myproject
    spec:
      kafka:
        # ...
        listeners:
          - name: listener1
            port: 9094
            type: route
            tls: true
            # ...
        # ...
      zookeeper:
        # ...
    Copy to Clipboard Toggle word wrap
    警告

    OpenShift Route 地址由 Kafka 集群的名称、侦听器的名称以及在其中创建的命名空间的名称组成。例如,my-cluster-kafka-listener1-bootstrap-myproject (CLUSTER-NAME-kafka-LISTENER-NAME-bootstrap-NAMESPACE)。请注意,地址的整个长度不超过 63 个字符的最大值。

  2. 创建或更新资源。

    oc apply -f <kafka_configuration_file>
    Copy to Clipboard Toggle word wrap

    ClusterIP 类型服务为每个 Kafka 代理和外部 bootstrap 服务创建。服务将 OpenShift 路由的流量路由到 Kafka 代理。还为每个服务创建一个 OpenShift Route 资源,以使用 HAProxy 负载均衡器来公开它们。用于连接的 DNS 地址会传播到每个 服务的状态

    在 secret <cluster _name> -cluster-ca-cert 中也创建了用于验证 kafka 代理身份的集群 CA 证书。

  3. 检索可用于从 Kafka 资源状态访问 Kafka 集群的 bootstrap 服务地址。

    oc get kafka <kafka_cluster_name> -o=jsonpath='{.status.listeners[?(@.name=="<listener_name>")].bootstrapServers}{"\n"}'
    Copy to Clipboard Toggle word wrap

    例如:

    oc get kafka my-cluster -o=jsonpath='{.status.listeners[?(@.name=="listener1")].bootstrapServers}{"\n"}'
    Copy to Clipboard Toggle word wrap
  4. 提取代理证书颁发机构的公共证书。

    oc get secret KAFKA-CLUSTER-NAME-cluster-ca-cert -o jsonpath='{.data.ca\.crt}' | base64 -d > ca.crt
    Copy to Clipboard Toggle word wrap

    使用 Kafka 客户端中提取的证书配置 TLS 连接。如果您启用了任何身份验证,您也需要配置 SASL 或 TLS 身份验证。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat