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

时间:2019-04-22 12:51:29

标签: kubernetes apache-kafka

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

2 个答案:

答案 0 :(得分:1)

如果要使所有Pod在不同的节点上运行-必须使用PodAntiAffinity。如果这是硬性要求,则必须使用requiredDuringSchedulingIgnoredDuringExecution规则。如果不是,请使用preferredDuringSchedulingIgnoredDuringExecution

topologyKey应该是kubernetes.io/hostname。

labelSelector中,放置您的广告连播的标签。

答案 1 :(得分: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/