2.7.3. 在 Kafka 组件中配置 pod 反关联性
Pod 反关联性配置有助于实现 Kafka 代理的稳定性和性能。通过使用 podAntiAffinity
,OpenShift 不会将 Kafka 代理调度到与其他工作负载相同的节点上。通常,您想要避免在与其他网络或者存储密集型应用程序(如数据库、存储或其他消息传递平台)相同的 worker 节点上运行 Kafka。
先决条件
- OpenShift 集群
- 一个正在运行的 Cluster Operator
流程
编辑指定集群部署的资源中的
affinity
属性。使用标签指定不应调度到同一节点上的 pod。topologyKey
应设置为kubernetes.io/hostname
,以指定不应将所选 pod 调度到具有相同主机名的节点。例如:apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka spec: kafka: # ... template: pod: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: application operator: In values: - postgresql - mongodb topologyKey: "kubernetes.io/hostname" # ... zookeeper: # ...
创建或更新资源。
这可以使用
oc apply
来完成:oc apply -f KAFKA-CONFIG-FILE