如何在Kubernetes中创建故意的pod偏斜?

s5a0g9ez  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(111)

我试图在Kubernetes中创建一个pod偏斜。例如,我想在ARM上运行25%的服务Pod,其余的在英特尔上运行。
大多数现有的工具都是围绕均匀地平衡吊舱。TopologySpreadConstraints试图最小化偏斜,反亲和性也将尝试最小化偏斜。
我想到的唯一想法是在我的场所创建几个特殊的标签--我可以传播反对的团体。因此,我可以创建4个IG,1个ARM,3个Intel,创建一个像'arm-rollout-25'这样的标签,值为1-4,并在所有这些之间进行平衡。这感觉非常古怪。那么,有没有更好的方法来做到这一点?

aiazj4mn

aiazj4mn1#

Kubernetes遵循一种声明式的方法,为了实现你想要的功能,你需要定义标签,并手动说明如何在节点上分发pod,正如你所说的,这有点太麻烦了。
为了降低这种不均匀分布场景的复杂性,我们不能简单地依赖kubernetes,我们需要使用一些外部工具或脚本来管理kubernetes集群。有很多这样的工具和库,这里我们将使用kubernetes python client
即使在使用这些库时,您也需要使用标签概念和资源约束概念,但其余的逻辑可以很容易地修改。该实现背后的逻辑如下:
1.首先计算应用程序所需的Pod总数
1.使用Kubernetes Python客户端库获取每个节点的资源详细信息
1.创建一个逻辑,声明25%的pod需要部署在一个特定的节点上,如果你想随机部署,你也可以在这里接受用户输入。
1.计算每个节点上所需资源和可用资源,如果可以容纳Pod,则继续下一步。
1.使用kubernetes python客户端库并根据您想要的拓扑部署pod。

相关问题