14.5. ノードポートを使用した Kafka へのアクセス


ノードポートを使用して、OpenShift クラスター外の外部クライアントから Streams for Apache Kafka クラスターにアクセスします。

ブローカーに接続するには、Kafka ブートストラップアドレスのホスト名とポート番号、および TLS 暗号化に使用される証明書を指定します。

この手順では、基本的な nodeport リスナーの設定を示します。リスナープロパティーを使用して、TLS 暗号化 (tls) を有効にし、クライアント認証メカニズム (authentication) を指定できます。configuration プロパティーを使用して追加の設定を追加します。たとえば、nodeport リスナーで次の設定プロパティーを使用できます。

preferredNodePortAddressType
ノードアドレスとしてチェックされる最初のアドレスタイプを指定します。
externalTrafficPolicy
サービスによって外部トラフィックがローカルノードのエンドポイントまたはクラスター全体のエンドポイントにルーティングされるかどうかを指定します。
nodePort
ブートストラップおよびブローカーサービスに割り当てられたノードポート番号をオーバーライドします。

リスナー設定の詳細は、GenericKafkaListener スキーマリファレンス を参照してください。

前提条件

  • 稼働中の Cluster Operator

この手順では、Kafka クラスター名は my-cluster です。リスナーの名前は external4 です。

手順

  1. 外部リスナーを nodeport タイプに設定して Kafka リソースを設定します。

    以下に例を示します。

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      labels:
        app: my-cluster
      name: my-cluster
      namespace: myproject
    spec:
      kafka:
        # ...
        listeners:
          - name: external4
            port: 9094
            type: nodeport
            tls: true
            authentication:
              type: tls
            # ...
        # ...
      zookeeper:
        # ...
    Copy to Clipboard Toggle word wrap
  2. リソースを作成または更新します。

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

    kafka ブローカーの ID を確認するためのクラスター CA 証明書は、シークレットの my-cluster-cluster-ca-cert に作成されます。

    NodePort タイプのサービスは、外部ブートストラップサービスと同様に、Kafka ブローカーごとに作成されます。

    ブートストラップおよびブローカー用に作成されたノードポートサービス

    NAME                                  TYPE      CLUSTER-IP      PORT(S)
    my-cluster-kafka-external4-0          NodePort  172.30.55.13    9094:31789/TCP
    my-cluster-kafka-external4-1          NodePort  172.30.250.248  9094:30028/TCP
    my-cluster-kafka-external4-2          NodePort  172.30.115.81   9094:32650/TCP
    my-cluster-kafka-external4-bootstrap  NodePort  172.30.30.23    9094:32650/TCP
    Copy to Clipboard Toggle word wrap

    クライアント接続に使用されるブートストラップアドレスは、Kafka リソースの status に伝播されます。

    ブートストラップアドレスのステータスの例

    status:
      clusterId: Y_RJQDGKRXmNF7fEcWldJQ
      conditions:
        - lastTransitionTime: '2023-01-31T14:59:37.113630Z'
          status: 'True'
          type: Ready
      kafkaVersion: 3.7.0
      listeners:
        # ...
        - addresses:
            - host: ip-10-0-224-199.us-west-2.compute.internal
              port: 32650
          bootstrapServers: 'ip-10-0-224-199.us-west-2.compute.internal:32650'
          certificates:
            - |
              -----BEGIN CERTIFICATE-----
    
              -----END CERTIFICATE-----
          name: external4
      observedGeneration: 2
      operatorLastSuccessfulVersion: 2.7
     # ...
    Copy to Clipboard Toggle word wrap

  3. Kafka リソースのステータスから、Kafka クラスターにアクセスする際に使用するブートストラップアドレスを取得します。

    oc get kafka my-cluster -o=jsonpath='{.status.listeners[?(@.name=="external4")].bootstrapServers}{"\n"}'
    
    ip-10-0-224-199.us-west-2.compute.internal:32650
    Copy to Clipboard Toggle word wrap
  4. クラスター CA 証明書を抽出します。

    oc get secret my-cluster-cluster-ca-cert -o jsonpath='{.data.ca\.crt}' | base64 -d > ca.crt
    Copy to Clipboard Toggle word wrap
  5. ブローカーに接続するようにクライアントを設定します。

    1. Kafka クラスターに接続するためのブートストラップアドレスとして、Kafka クライアントのブートストラップホストとポートを指定します。たとえば、ip-10-0-224-199.us-west-2.compute.internal:32650 です。
    2. 抽出した証明書を Kafka クライアントのトラストストアに追加して、TLS 接続を設定します。

      クライアント認証メカニズムを有効にした場合は、クライアントでもそれを設定する必要があります。

注記

独自のリスナー証明書を使用している場合は、CA 証明書をクライアントのトラストストア設定に追加する必要があるかどうかを確認してください。パブリック (外部) CA の場合、通常は追加する必要はありません。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat