部署kafka以使其部署在所有可用节点中的推荐方法是什么?

问题描述 投票:1回答:2

我在k8s中有3个从属节点,我正在运行kafka(3个集群)。在部署zk / broker / rest-proxy时,它未部署在所有可用节点中。如何确保所有pod都部署在不同的节点中。我需要使用nodeaffinity或podaffinity吗?

kubernetes apache-kafka
2个回答
1
投票

如果您希望所有pod在不同节点上运行 - 您必须使用PodAntiAffinity。如果这是硬性要求 - 您必须使用requiredDuringSchedulingIgnoredDuringExecution规则。如果不是 - 使用preferredDuringSchedulingIgnoredDuringExecution

topologyKey应该是kubernetes.io/hostname。

labelSelector放你的豆荚标签。


1
投票

我建议使用柔软的抗亲和力,它看起来像:

affinity:
    podAntiAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - podAffinityTerm:
          labelSelector:
            matchExpressions:
            - key: app
              operator: In
              values:
              - <your app label>
          topologyKey: kubernetes.io/hostname
        weight: 100

在这里,我解释了反亲和类型与应用于实时集群的示例之间的区别:https://blog.verygoodsecurity.com/posts/kubernetes-multi-az-deployments-using-pod-anti-affinity/

© www.soinside.com 2019 - 2024. All rights reserved.