Confluent コンポーネントにアクセスするためのノードポートの構成¶
外部クライアントアクセスに NodePort サービスを使用して Confluent コンポーネントを構成した場合、Confluent コンポーネントの各ノードに異なるポートが Kubernetes により割り当てられます。Kafka のブローカー、ブートストラップサービス、および各コンポーネントにはそれぞれ別個のポートからアクセスできます。
ブローカーが N 個ある Kafka クラスターには、N+1 個の NodePort サービスが作成されます。
- ブートストラップサーバー用に 1 個。初期接続用
- N 個のサービス。各ブローカーにつき 1 個で、その後ブローカーとの直接接続で使用
MDS への 外部アクセス を有効にした場合、ブローカーが N 個ある、RBAC が有効な Kafka クラスターには、N+2 個の NodePort サービスが作成されます。
- ブートストラップサーバー用に 1 個。初期接続用
- ブートストラップサーバー上の MDS 用に 1 個
- N 個のサービス。各ブローカーにつき 1 個で、その後ブローカーとの直接接続で使用
その他、Metadata Service (MDS) への外部アクセスを実現するために必要な構成手順については、「RBAC のためのネットワークの構成」を参照してください。
外部通信に NodePort サービスを使用するには
Kubernetes クラスターに属する単一または複数のノードのアドレスを使用して、DNS レコードを作成します。
ノードポートを使用して Kafka を構成するには、Kafka のカスタムリソース(CR)で次のように設定して構成を適用します。
spec: listeners: external: externalAccess: type: nodePort nodePort: nodePortOffset: # Required. The value should be be in the range # between 30000 and 32767, inclusive. host: # Required. Specify the FQDN that will be # used to configure all advertised listeners.
実行中のクラスターで
nodePortOffset
またはhost
の値を変更する場合、クラスターをローリングする必要があります。ノードポートを使用して他の Confluent コンポーネントを構成するには、そのコンポーネントの CR で次のように設定して構成を適用します。
spec: externalAccess: type: nodePort nodePort: nodePortOffset: # Required. The value should be in the range # between 30000 and 32767, inclusive. host: # Required. Specify the FQDN that will be used # to configure all advertised listeners.
各 Confluent Platform コンポーネントのアクセスエンドポイントは
<host>:<nodePortOffset>
です。実行中のクラスターで
nodePortOffset
またはhost
の値を変更する場合、クラスターをローリングする必要があります。使用予定の NodePort 範囲で接続できるように、ファイアウォールルールを作成します。ファイアウォールルールの作成手順については、「ファイアウォールルールの使用」を参照してください。
次のコマンドを使用して名前空間内のサービスをリストし、NodePort サービスが正しく作成されていることを確認します。
kubectl get services -n <namespace> | grep NodePort
NodePort を使用した外部アクセスの構成に関するチュートリアルのシナリオについては、ノードポートの使用に関するクイックスタートチュートリアル を参照してください。