k8s 的反亲和性非常的愚蠢
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution: #设置调度策略。
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- imdb-match-api
topologyKey: kubernetes.io/hostname
是强制反亲和的
比如我有 10个 node,需要部署 12个一样的pod
我希望这 8个节点各部署一个 pod,另外 2 个节点各部署两个 pod
但是 k8s 设置了反亲和性,就最多只能部署 10 个 pod 了,另外两个 pod 就永远是 pending 状态了
我只是希望尽量部署在不同机器上,避免一台机器挂了,导致这些 pod 被一锅端,但不强求一个 node 只能部署一个 pod
我该怎么做呢?
Kubernetes 的默认调度策略是尽可能满足 pod 的资源需求,同时尽量均匀分配 pod 到多个节点上。
所以没必要设置反亲和性。