作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有几个 Kubernetes 集群,每个集群有不同的节点数。我的配置部署有“副本:#nodes”。没有为调度该 pod 设置特定的配置,但在部署后,我看到节点上 pod 分布方面的奇怪行为。
例子:
对于 30 个节点的集群(30 个副本),所有 30 个 pod 副本仅分布在 25 个节点上,其他 5 个节点在集群中处于理想状态。
许多其他不同集群的类似情况和这个计数在每次新/重新部署中都不同。
题:
我想在所有节点上分发我的 pod 副本。如果我设置了“replicas: #nodes”,那么我应该在每个节点中有一个 pod 副本。如果我将副本数量增加/加倍,那么它应该均匀分布。
Kubernetes 的部署 yaml 中是否有任何特定配置?
使用节点 AntiAffinity 进行配置,但该节点的行为仍与上述相同。尝试使用“requiredDuringSchedulingIgnoredDuringExecution”,并且确实在每个节点中部署了一个 pod,但是如果我增加副本或任何节点在部署过程中出现故障,那么整个部署就会失败。
metadata:
labels:
app: test1
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- test1
topologyKey: kubernetes.io/hostname
最佳答案
如果您需要每个节点部署 1 个 pod,您应该使用 daemonSet而不是副本集。或者,如果每个节点需要 1 个以上的 pod 并且仍然希望 pod 分布基本均匀,则可以使用 pod anti-affinity,正如我讨论的 in this post
关于kubernetes - 如何在 Kubernetes 中跨所有节点均匀部署 Pod?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59434797/
我是一名优秀的程序员,十分优秀!