6.3. type
タイプは internal として設定されるか、外部リスナーの場合は route、loadbalancer、nodeport、ingress または 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 #...