gpt4 book ai didi

Kubernetes 的艰难之路 - 如何设置节点不可调度

转载 作者:行者123 更新时间:2023-12-03 11:21:39 26 4
gpt4 key购买 nike

我正在从头开始配置 Kubernetes 集群(原因)。它是虚拟机内部的本地设置,一切都很好,除了 master节点被创建为可调度的。
我试过分配 master通过将必需的参数传递给 kubelet 二进制文件来为节点添加标签和适当的污点(不能解决问题):

--register-with-taints=node-role.kubernetes.io/master=:NoSchedule
--node-labels=master,node-role.kubernetes.io/master=""
这是 kubectl describe <node> 的输出:
Name:               myNodeName
Roles: master
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/hostname=myHostName
master=
node-role.kubernetes.io/master=
Annotations: node.alpha.kubernetes.io/ttl=0
volumes.kubernetes.io/controller-managed-attach-detach=true
CreationTimestamp: Tue, 03 Jul 2018 05:56:53 +0000
Taints: node-role.kubernetes.io/master=true:NoSchedule
Unschedulable: false
如何将此节点设置为不可调度?文档并没有真正指定这一点(请随意指向文档的适当部分,以防我遗漏了某些内容)。
PS:上面提到的标签/污点在创建/注册节点之前就存在。

最佳答案

污点让我们有可能标记一个节点,以防止调度程序将它用于某些带有 NoSchedule 的 Pod。参数,并且它们具有 Kubernetes Scheduler 在规划步骤中使用的特殊值。在您添加 tolerations 之前,默认情况下无法在带有污点的节点上生成 Pod。这将允许调度程序在具有 toleration 中指定的污点的节点上创建 pod。配置;因此,根据您的节点描述,您已成功将此节点注册为 NoSchedule这意味着不会在此节点上调度 Pod。

Taints: node-role.kubernetes.io/master=true:NoSchedule


或者,您可以使用 kubectl cordon NODE命令将节点标记为 unschedulable ;因此它将完全禁用节点的调度,因此 Kubernetes Scheduler 在规划工作负载的过程中将忽略它,它反射(reflect)在您的节点配置中,例如:

Unschedulable: true

关于Kubernetes 的艰难之路 - 如何设置节点不可调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51147847/

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