搜索

第 3 章 配置外部监听程序

download PDF

使用外部监听程序向 OpenShift 环境外的客户端公开您的 AMQ Streams Kafka 集群。

在外部监听程序配置中指定要公开 Kafka 的连接 类型

  • NodePort 使用 NodePort 类型 服务
  • LoadBalancer 使用 Loadbalancer 类型 服务
  • Ingress 使用 Kubernetes IngressKubernetes 的 NGINX Ingress Controller
  • 路由 使用 OpenShift 路由 和 HAProxy 路由器

有关监听器配置的更多信息,请参阅 GenericKafkaListener 模式参考

注意

路由 只在 OpenShift 中被支持

3.1. 使用节点端口访问 Kafka

此流程描述了如何使用节点端口从外部客户端访问 AMQ Streams Kafka 集群。

要连接到代理,您需要 Kafka bootstrap 地址 的主机名和端口号,以及用于身份验证的证书。

先决条件

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

流程

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

    例如:

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    spec:
      kafka:
        # ...
        listeners:
          - name: external
            port: 9094
            type: nodeport
            tls: true
            authentication:
              type: tls
            # ...
        # ...
      zookeeper:
        # ...
  2. 创建或更新资源。

    oc apply -f KAFKA-CONFIG-FILE

    为每个 Kafka 代理和外部 bootstrap 服务 创建 NodePort 类型服务。bootstrap 服务将外部流量路由到 Kafka 代理。用于连接的节点地址被传播到 Kafka 自定义资源 的状态

    也使用与 Kafka 资源相同的名称来创建用于验证 kafka 代理身份的集群 CA 证书。

  3. 从 Kafka 资源 的状态检索您用来访问 Kafka 集群的 bootstrap 地址。

    oc get kafka KAFKA-CLUSTER-NAME -o=jsonpath='{.status.listeners[?(@.type=="external")].bootstrapServers}{"\n"}'
  4. 如果启用了 TLS 加密,请提取代理认证机构的公共证书。

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

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.