gpt4 book ai didi

azure - 如何限制每个节点附加托管磁盘的 Pod 数量

转载 作者:行者123 更新时间:2023-12-02 11:48:50 36 4
gpt4 key购买 nike

假设有一个集群,上面运行着许多不同的部署。某些 Pod 使用 PersistentVolume(Azure 磁盘)。 Azure 中对虚拟机可以安装的磁盘数量有限制,这会导致调度错误,例如

Status=409 Code="OperationNotAllowed" Message="The maximum number of data disks allowed to be attached to a VM of this size is 8

Pod 留在

Waiting: Container creating

永远处于状态,但是在调度时,某些节点带有附加磁盘的 pod 数量要少得多。如果能够限制每个节点附加磁盘的 Pod 数量,这样就永远不会发生此错误。我相信

podAntiAffinity

是我所需要的,我知道我可以限制具有相同标签的 Pod 在同一节点上进行调度,但我不知道如何允许它,直到节点具有最大数量的磁盘 Pod。

我的安装是 AKS。

az acs create \
--orchestrator-type=kubernetes \
--orchestrator-version 1.7.9 \
--resource-group <resource_group_here> \
--name=<name_here> \
...

最佳答案

KUBE_MAX_PD_VOLS 就是您正在寻找的内容。默认情况下,Azure 磁盘的值为 16。因此,您可以使用具有相同附加磁盘限制 (16) 的实例,也可以将其设置为首选值。您可以在github处查看它的声明位置。

您应该在调度程序声明中设置此环境变量。我在 /etc/kubernetes/manifests/kube-scheduler.yaml 中找到了我的调度程序声明。现在看起来是这样的:
api版本:“v1”
种类:“ pod ”
元数据:
名称:“kube 调度程序”
...
规范:
容器:
- 名称:“kube-scheduler”
...
环境:
- 名称:KUBE_MAX_PD_VOLS
值:“8”
...

注意 spec.containers.env.KUBE_MAX_PD_VOLS 设置 - 它会阻止在每个节点上调度超过 8 个磁盘。

这样 Pod 在节点之间传播不会出现任何问题,无法容纳的 Pod 会保持在 Pending 状态,直到找到足够的节点来容纳。

关于azure - 如何限制每个节点附加托管磁盘的 Pod 数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50532761/

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