6.2. リスナータイプの指定
内部リスナーの場合は、タイプを internal に設定します。外部リスナーの場合は、route、loadbalancer、nodeport、または ingress から選択します。cluster-ip リスナーを設定することもできます。これはカスタムアクセスメカニズムの構築に使用される内部タイプです。
- internal
tlsプロパティーを使用して、暗号化の有無に関わらず内部リスナーを設定できます。internalリスナーの設定例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - route
OpenShift
Routesおよび HAProxy ルーターを使用して Kafka を公開するように外部リスナーを設定します。Kafka ブローカー Pod ごとに専用の
Routeが作成されます。追加のRouteが作成され、Kafka ブートストラップアドレスとして提供されます。これらのRoutesを使用すると、Kafka クライアントを 443 番ポートで Kafka に接続することができます。クライアントはデフォルトのルーターポートであるポート 443 に接続しますが、トラフィックは設定するポート (この例では9094) にルーティングされます。routeリスナーの設定例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Ingress
Kubernetes
Ingressおよび Ingress NGINX Controller for Kubernetes を使用して、Kafka を公開するように外部リスナーを設定します。各 Kafka ブローカー Pod に専用の
Ingressリソースが作成されます。追加のIngressリソースが作成され、Kafka ブートストラップアドレスとして提供されます。これらのIngressリソースを使用すると、Kafka クライアントを 443 番ポートで Kafka に接続することができます。クライアントはデフォルトのコントローラーポートであるポート 443 に接続しますが、トラフィックは設定するポート (以下の例では9095にルーティングされます)。GenericKafkaListenerConfigurationBootstrapプロパティーを使用して、ブートストラップサービスで使用されるホスト名を指定する必要があります。また、GenericKafkaListenerConfigurationBrokerまたはhostTemplateプロパティーを使用して、ブローカーごとのサービスで使用されるホスト名も指定する必要があります。hostTemplateプロパティーを使用すると、ブローカーごとに設定を指定する必要がなくなります。ingressリスナーの設定例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Ingressを使用する外部リスナーは、現在 Ingress NGINX Controller for Kubernetes でのみテストされています。- loadbalancer
LoadbalancerタイプのServiceを使用して Kafka を公開するように外部リスナーを設定します。Kafka ブローカー Pod ごとに新しいロードバランサーサービスが作成されます。追加のロードバランサーが作成され、Kafka の ブートストラップ アドレスとして提供されます。ロードバランサーは指定のポート番号をリッスンします。以下の例ではポート
9094です。loadBalancerSourceRangesプロパティーを使用して、指定された IP アドレスへのアクセスを制限する ソース範囲 を設定できます。loadbalancerリスナーの設定例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - nodeport
NodePortタイプのServiceを使用して Kafka を公開するように外部リスナーを設定します。Kafka クライアントは OpenShift のノードに直接接続します。追加の
NodePortタイプのサービスが作成され、Kafka ブートストラップアドレスとして提供されます。Kafka ブローカー Pod にアドバタイズされたアドレスを設定する場合、Streams for Apache Kafka は、該当する Pod が実行されているノードのアドレスを使用します。
preferredNodePortAddressTypeプロパティーを使用して、チェックした 最初のアドレスタイプをノードアドレスとして 設定することができます。nodeportリスナーの設定例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ノードポートを使用して 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リスナーの設定例Copy to Clipboard Copied! Toggle word wrap Toggle overflow