gpt4 book ai didi

kubernetes - 为跨不同节点池的部署分发 pod

转载 作者:行者123 更新时间:2023-12-02 11:34:28 27 4
gpt4 key购买 nike

在我的 GKE Kubernetes 集群中,我有 2 个节点;一个具有常规节点,另一个具有可抢占节点。我希望一些 pod 位于可抢占节点上,这样我可以节省成本,同时我在常规非抢占节点上至少有 1 个 pod 以降低停机风险。

我知道使用 podAntiAffinity 来鼓励将 pod 安排在不同的节点上,但是有没有办法让 k8s 为跨两个?

最佳答案

是的💡!您可以使用 Pod Topology Spread Constraints ,基于节点上的标签🏷️键。例如,标签可以是 type,值可以是 regularpreemptible。然后你可以有这样的东西:

kind: Pod
apiVersion: v1
metadata:
name: mypod
labels:
foo: bar
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: type
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
foo: bar
containers:
- name: app
image: myimage

您还可以确定一个 maxSkew,这意味着一个标签值(节点类型)可以拥有的 pod 数量的最大差异。

您还可以组合多个“Pod Topology Spread Constraints”以及 PodAffinity/AntiAffinity 和 NodeAffinity。一切都取决于最适合您的用例。

注意:此功能在 1.16 中为 alpha,在 1.18 中为 beta。 Beta 功能默认启用,但使用 alpha 功能,您需要 alpha cluster在 GKE 中。

☮️✌️

关于kubernetes - 为跨不同节点池的部署分发 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63062362/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com