B.9.6. networkPolicyPeers
使用 networkPolicyPeers 配置网络策略,以限制对网络级别的监听器的访问。以下示例显示了用于 普通 和 a 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 可以连接到普通的监听程序。应用程序 pod 必须与 Kafka 代理在同一命名空间中运行。 -
只有命名空间中运行的应用容器集与 labels
项目匹配:myproject 和 project:myproject2可以连接到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
- 选项:
入口、负载均衡器、节点端口、路由
| 属性 | 描述 |
|---|---|
| name | 侦听器的名称。名称将用于识别侦听器和相关 OpenShift 对象。该名称必须在给定的 Kafka 集群内唯一。名称可以包含小写字符和数字,并且最多可包含 11 个字符。 |
| 字符串 | |
| 端口 | Kafka 内侦听器使用的端口号。在给定 Kafka 集群中,端口号必须是唯一的。允许的端口号是 9092 及以上,但端口 9404 和 9999 除外,它们已用于 Prometheus 和 JMX。根据监听程序类型,端口号可能与连接 Kafka 客户端的端口号不同。 |
| 整数 | |
| type |
侦听器的类型。目前支持的类型有
* |
| 字符串([ingress、internal、route、loadbalancer、nodeport] 之一) | |
| tls | 在监听器上启用 TLS 加密。这是必填属性。 |
| 布尔值 | |
| 身份验证 |
此侦听器的身份验证配置.这个类型取决于给定对象中的 |
|
| |
| 配置 | 其他监听器配置. |
| networkPolicyPeers | 能够连接到此监听器的同级服务器列表。此列表中的对等点使用逻辑 OR 操作组合。如果此字段为空或缺失,则允许此监听器所有连接。如果此字段存在并且至少包含一项,侦听器仅允许与此列表中至少匹配一项的流量。请参阅 networking.k8s.io/v1 networkpolicypeer 的外部文档。 |