14.2. Kafka ブローカーに接続するためのリスナー設定


Kafka ブローカーへのクライアント接続にはリスナーを使用します。Streams for Apache Kafka には、Kafka リソースを通じてリスナーを設定するためのプロパティーを備えた汎用的な GenericKafkaListener スキーマが用意されています。GenericKafkaListener は、リスナー設定に柔軟なアプローチを提供します。プロパティーを指定して、OpenShift クラスター内で接続する 内部 リスナーを設定したり、OpenShift クラスター外部で接続する 外部 リスナーを設定したりできます。

リスナー設定で Kafka を公開するための接続 type を指定します。要件ならびにお使いの環境およびインフラストラクチャーに応じて、選択するタイプは異なります。次のリスナータイプがサポートされています。

内部リスナー
  • 同じ OpenShift クラスター内で接続する internal
  • ブローカーごとの ClusterIP サービスを使用して Kafka を公開する cluster-ip
外部リスナー
  • OpenShift ノードのポートを使用する nodeport
  • ロードバランサーサービスを使用する loadbalancer
  • Kubernetes Ingress および Kubernetes 用 Ingress NGINX コントローラー を使用する ingress (Kubernetes のみ)
  • OpenShift Route とデフォルトの HAProxy ルーターを使用する route (OpenShift のみ)
重要

OpenShift では ingress を使用せず、代わりに route タイプを使用してください。Ingress NGINX コントローラーは、Kubernetes でのみ使用することを目的としています。route タイプは OpenShift でのみサポートされます。

internal タイプのリスナー設定は、ヘッドレスサービスと、ブローカー Pod に指定された DNS 名を使用します。OpenShift ネットワークを外部ネットワークに参加させたい場合があります。その場合、OpenShift サービスの DNS ドメイン (通常は .cluster.local) が使用されないように、内部 タイプのリスナーを (useServiceDnsDomain プロパティーを使用して) 設定できます。ブローカーごとの ClusterIP サービスに基づいて Kafka クラスターを公開する cluster-ip タイプのリスナーを設定することもできます。これは、ヘッドレスサービスを介してルーティングできない場合や、カスタムアクセスメカニズムを組み込みたい場合に便利なオプションです。たとえば、特定の Ingress コントローラーまたは OpenShift Gateway API 用に独自のタイプの外部リスナーを構築するときに、このリスナーを使用できます。

外部リスナーは、さまざまな認証メカニズムを必要とするネットワークから Kafka クラスターへのアクセスを処理します。ロードバランサーやルートなどの指定された接続メカニズムを使用して、OpenShift 環境外部のクライアントアクセスに対して外部リスナーを設定できます。たとえば、ロードバランサーは、ベアメタルなどの特定のインフラストラクチャーには適さない場合があります。ベアメタルでは、ノードポートがより適したオプションを提供します。

各リスナーは、Kafka リソース内の配列として定義されます。

リスナーの設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
        configuration:
          useServiceDnsDomain: true
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
      - name: external1
        port: 9094
        type: route
        tls: true
        configuration:
          brokerCertChainAndKey:
            secretName: my-secret
            certificate: my-certificate.crt
            key: my-key.key
    # ...

名前とポートが一意であれば、必要なリスナーをいくつでも設定できます。認証を使用してセキュアな接続を行うようにリスナーを設定することもできます。

各接続タイプの長所と短所については、Strimzi での Apache Kafka へのアクセスを参照してください。

注記

外部リスナーの使用時に Kafka クラスターをスケーリングする場合、すべての Kafka ブローカーのローリング更新がトリガーされる可能性があります。これは設定によって異なります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.