B.9.2. type


该类型设置为 internal,或针对外部监听器,作为 路由loadbalancernodeportingress

internal

您可以使用 tls 属性使用或不加密配置内部监听程序。

内部 监听程序配置示例

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: plain
        port: 9092
        type: internal
        tls: false
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
    #...

route

配置外部侦听器以使用 OpenShift Route 和 HAProxy 路由器公开 Kafka。

为每个 Kafka 代理 pod 创建一个专用 路由。创建一个额外的 Route 来充当 Kafka bootstrap 地址。Kafka 客户端可以使用这些 路由 连接端口 443 上的 Kafka。客户端在端口 443(默认路由器端口)上连接,但流量将路由到您配置的端口,本例中为 9094

路由 监听程序配置示例

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external1
        port: 9094
        type: route
        tls: true
    #...

ingress

配置一个外部监听程序以使用 Kubernetes Ingress 和 Kubernetes 的 NGINX Ingress Controller 公开 Kafka。

为每个 Kafka 代理 Pod 创建一个专用的 Ingress 资源。创建一个额外的 Ingress 资源来充当 Kafka bootstrap 地址。Kafka 客户端可以使用这些 Ingress 资源连接到端口 443 上的 Kafka。客户端在端口 443(默认控制器端口)上连接,但流量会路由到您配置的端口,以下示例中是 9095

您必须使用 GenericKafkaListenerConfigurationBootstrap 和 GenericKafkaListenerConfiguration Broker 属性指定 bootstrap 和每个broker 服务使用的主机名。

ingress 侦听器配置示例

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external2
        port: 9095
        type: ingress
        tls: false
        authentication:
          type: tls
        configuration:
          bootstrap:
            host: bootstrap.myingress.com
          brokers:
          - broker: 0
            host: broker-0.myingress.com
          - broker: 1
            host: broker-1.myingress.com
          - broker: 2
            host: broker-2.myingress.com
  #...

注意

使用 Ingress 的外部监听程序目前只使用 Kubernetes 的 NGINX Ingress Controller 测试。

LoadBalancer

配置一个外部监听程序来公开 Kafka Loadbalancer 类型 服务

为每个 Kafka 代理 pod 创建一个新的负载均衡器服务。创建一个额外的负载均衡器来充当 Kafka bootstrap 地址。Loadbalancers 侦听指定的端口号,以下示例中是端口 9094

您可以使用 loadBalancerSourceRanges 属性配置 源范围,以限制对指定 IP 地址的访问。

loadbalancer 侦听器配置示例

#...
spec:
  kafka:
    #...
    listeners:
      - name: external3
        port: 9094
        type: loadbalancer
        tls: true
        configuration:
          loadBalancerSourceRanges:
            - 10.0.0.0/8
            - 88.208.76.87/32
    #...

NodePort

配置外部侦听器以使用 NodePort 类型 服务 公开 Kafka。

Kafka 客户端直接连接到 OpenShift 节点。创建额外的 NodePort 类型服务作为 Kafka bootstrap 地址。

在为 Kafka 代理 Pod 配置公告的地址时,AMQ Streams 使用运行给定 pod 的节点的地址。您可以使用 preferredNodePortAddressType 属性配置 第一个地址类型作为节点地址检查

nodeport 侦听器配置示例

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external4
        port: 9095
        type: nodeport
        tls: false
        configuration:
          preferredNodePortAddressType: InternalDNS
    #...

注意

在使用节点端口公开 Kafka 集群时,当前不支持 TLS 主机名验证。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.