我有12个K8部署,它们应该基于资源利用率(如uptime命令)在3个K8节点上均匀分布。我期望Kubernetes在创建吊舱时自动选择使用最少资源的节点,我认为这应该会导致均衡的分布,但令我惊讶的是,Kubernetes在同一节点上创建了大部分的Pods,几乎没有处理负载,而其他节点几乎没有被利用。
我听说过像这样使用topologySpreadConstraints
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
type: wordpress-3 但是我不能让它正常工作,有什么正确的方法来实现我正在寻找的部署的均匀分布行为呢?谢谢!
发布于 2022-04-08 06:21:13
你在用碧桂树的wordpress图表吗?
如果是这样,您可以更新传递到图表中的values.yaml,并设置如下反关联:
# Affinity
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- topologyKey: kubernetes.io/hostname
labelSelector:
matchLabels:
app.kubernetes.io/instance: {name of your Wordpress release}这将迫使kubernetes在一个主机(即节点)上只允许一个Wordpress pod。我在自己的Wordpress安装上使用这个设置,这意味着如果一个节点出现故障,它不会取出站点,因为其他副本仍然在运行,并且在单独的节点上运行。
https://stackoverflow.com/questions/71790088
复制相似问题