如何将statfulset的pods固定到特定的可用性区域



我试图理解,如果有可能(以及如何)将状态集的pod固定到特定的可用性区域。在上面的示例中,我想显式地配置弹性pod 1在可用区1中运行,pod 2在可用区2中运行,以此类推。我也不希望pod在它们的可用区之外运行,如果其中一个出现故障的话。

我读了这篇关于这件事的文章。如果我理解正确的话,我只能指定,一个statfulset不应该在同一个可用区运行它的pod,但不能,它总是在一个特定的可用区运行pod。

感谢任何能在这件事上教育我的人。

aws概述

您可以使用Pod Topology Spread约束。

拓扑扩展约束控制pod如何在您的在故障域(如区域、区域、节点等)之间群集自定义拓扑域。这可以帮助你达到更高的目标可用性和有效的资源利用。

以这里为例

kind: Pod
apiVersion: v1
metadata:
name: mypod
labels:
foo: bar
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: zone
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
foo: bar
containers:
- name: pause
image: k8s.gcr.io/pause:3.1

最新更新