6.3. type


タイプは internal として設定されるか、外部リスナーの場合は routeloadbalancernodeportingress または cluster-ip として設定されます。また、カスタムアクセスメカニズムの構築に使用できる内部リスナーの一種である cluster-ip リスナーを設定することもできます。

internal

tls プロパティーを使用して、暗号化の有無に関わらず内部リスナーを設定できます。

internal リスナーの設定例

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

route

OpenShift Routes および HAProxy ルーターを使用して Kafka を公開するように外部リスナーを設定します。

Kafka ブローカー Pod ごとに専用の Route が作成されます。追加の Route が作成され、Kafka ブートストラップアドレスとして提供されます。これらの Routes を使用すると、Kafka クライアントを 443 番ポートで Kafka に接続することができます。クライアントはデフォルトのルーターポートであるポート 443 に接続しますが、トラフィックは設定するポート (この例では 9094 ) にルーティングされます。

route リスナーの設定例

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

ingress

Kubernetes Ingress および Ingress NGINX Controller for Kubernetes を使用して、Kafka を公開するように外部リスナーを設定します。

各 Kafka ブローカー Pod に専用の Ingress リソースが作成されます。追加の Ingress リソースが作成され、Kafka ブートストラップアドレスとして提供されます。これらの Ingress リソースを使用すると、Kafka クライアントを 443 番ポートで Kafka に接続することができます。クライアントはデフォルトのコントローラーポートであるポート 443 に接続しますが、トラフィックは設定するポート (以下の例では 9095 にルーティングされます)。

GenericKafkaListenerConfigurationBootstrap および GenericKafkaListenerConfigurationBroker プロパティーを使用して、ブートストラップおよびブローカーごとのサービスによって使用されるホスト名を指定する必要があります。

Ingress リスナーの設定例

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external2
        port: 9095
        type: ingress
        tls: true
        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 を使用する外部リスナーは、現在 Ingress NGINX Controller for Kubernetes でのみテストされています。

loadbalancer

Loadbalancer タイプの Service を使用して Kafka を公開するように外部リスナーを設定します。

Kafka ブローカー Pod ごとに新しいロードバランサーサービスが作成されます。追加のロードバランサーが作成され、Kafka の ブートストラップ アドレスとして提供されます。ロードバランサーは指定のポート番号をリッスンします。以下の例ではポート 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 タイプの Service を使用して Kafka を公開するように外部リスナーを設定します。

Kafka クライアントは OpenShift のノードに直接接続します。追加の NodePort タイプのサービスが作成され、Kafka ブートストラップアドレスとして提供されます。

Kafka ブローカー Pod にアドバタイズされたアドレスを設定する場合、Streams for Apache Kafka は、該当する Pod が実行されているノードのアドレスを使用します。preferredNodePortAddressType プロパティーを使用して、チェックした最初のアドレスタイプをノードアドレスとして設定することができます。

nodeport リスナーの設定例

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

注記

ノードポートを使用して Kafka クラスターを公開する場合、現在 TLS ホスト名の検証はサポートされません。

cluster-ip

ブローカーごとの ClusterIP タイプ Service を使用して Kafka を公開するように内部リスナーを設定します。

リスナーは、ヘッドレスサービスとその DNS 名を使用してトラフィックを Kafka ブローカーにルーティングしません。ヘッドレスサービスの使用が不適切な場合は、このタイプのリスナーを使用して Kafka クラスターを公開できます。特定の Ingress コントローラーや OpenShift Gateway API を使用するものなど、カスタムアクセスメカニズムで使用できます。

Kafka ブローカー Pod ごとに新しい ClusterIP サービスが作成されます。このサービスには、ブローカーごとのポート番号を持つ Kafka ブートストラップ アドレスとして機能する ClusterIP アドレスが割り当てられます。たとえば、TCP ポート設定を使用して、Nginx Ingress Controller を介して Kafka クラスターを公開するようにリスナーを設定できます。

cluster-ip リスナーの設定例

#...
spec:
  kafka:
    #...
    listeners:
      - name: clusterip
        type: cluster-ip
        tls: false
        port: 9096
    #...

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.