B.9.6. networkPolicyPeers
ネットワークレベルでリスナーへのアクセスを制限するネットワークポリシーを設定するには、networkPolicyPeersを使用します。次の例では、plainとtlsリスナーのnetworkPolicyPeersの設定を示しています。
listeners:
#...
- name: plain
port: 9092
type: internal
tls: true
authentication:
type: scram-sha-512
networkPolicyPeers:
- podSelector:
matchLabels:
app: kafka-sasl-consumer
- podSelector:
matchLabels:
app: kafka-sasl-producer
- name: tls
port: 9093
type: internal
tls: true
authentication:
type: tls
networkPolicyPeers:
- namespaceSelector:
matchLabels:
project: myproject
- namespaceSelector:
matchLabels:
project: myproject2
# ...この例では以下が設定されています。
-
ラベル
app: kafka-sasl-consumerおよびapp: kafka-sasl-producerと一致するアプリケーション Pod のみがplainリスナーに接続できます。アプリケーション Pod は Kafka ブローカーと同じ namespace で実行されている必要があります。 -
ラベル
project: myprojectおよびproject: myproject2と一致する namespace で稼働しているアプリケーション Pod のみ、tlsリスナーに接続できます。
networkPolicyPeers フィールドの構文は、NetworkPolicy リソースの from フィールドと同じです。
KafkaListenersとの後方互換性
GenericKafkaListener は、非推奨となった KafkaListeners スキーマに置き換わりました。
KafkaListeners スキーマを使用して設定されたリスナーを、後方互換性で GenericKafkaListener スキーマの 形式に変換するには、以下の名前、ポート、およびタイプを使用します。
listeners:
#...
- name: plain
port: 9092
type: internal
tls: false
- name: tls
port: 9093
type: internal
tls: true
- name: external
port: 9094
type: EXTERNAL-LISTENER-TYPE 1
tls: true
# ...- 1
- オプション:
ingress、loadbalancer、nodeport、route
| プロパティー | 説明 |
|---|---|
| name | リスナーの名前。名前は、リスナーおよび関連する OpenShift オブジェクトの識別に使用されます。指定の Kafka クラスター内で一意となる必要があります。この名前には、小文字と数字を使用でき、最大 11 文字まで使用できます。 |
| string | |
| port | Kafka 内でリスナーによって使用されるポート番号。ポート番号は指定の Kafka クラスター内で一意である必要があります。許可されるポート番号は 9092 以上ですが、すでに Prometheus および JMX によって使用されているポート 9404 および 9999 以外になります。リスナーのタイプによっては、ポート番号は Kafka クライアントに接続するポート番号と同じではない場合があります。 |
| integer | |
| type |
リスナーのタイプ。現在サポートされているタイプは、
* |
| string ([ingress、internal、route、loadbalancer、nodeport] のいずれか) | |
| tls | リスナーで TLS による暗号化を有効にします。これは必須プロパティーです。 |
| boolean | |
| authentication |
このリスナーの認証設定。タイプは、指定のオブジェクト内の |
|
| |
| 設定 | 追加のリスナー設定。 |
| networkPolicyPeers | このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。外部のドキュメント「networking.k8s.io/v1 networkpolicypeer」を参照してください。 |
| NetworkPolicyPeer array |