kubesphere 污点管理
节点 (Node) 中有一个重要的功能即污点 (Taints) 管理。我们知道节点亲和性 (NodeAffinity) 是 Pod 上定义的一种属性,使 Pod 能够按我们的要求调度到某个节点上,而污点则恰恰相反,它可以让节点拒绝运行 Pod,甚至驱逐 Pod。
污点是节点的一个属性,如果主机设置了污点后,底层的 Kubernetes 是不会将 Pod 调度到这个节点上的。
污点管理
点击列表中的某台主机,进入详情页。例如以下节点,我们发现它的内存使用情况已经高达 91 % ,因此不建议再继续往这台节点上调度新的 Pod,可以为其设置一个污点。设置了污点后,KubeSphere 是不会将 Pod 调度到这个 Node 上的。
1、点击左上角 污点管理 按钮,进入主机污点 (Taints) 管理页面。
node.kubernetes.io/unschedulable=:NoSchedule
内置以下污点:
node.kubernetes.io/not-ready:节点尚未准备好。这对应于NodeConditionReady为False。
node.kubernetes.io/unreachable:无法从节点控制器访问节点。这对应于NodeConditionReady为Unknown。
node.kubernetes.io/out-of-disk:节点磁盘不足。
node.kubernetes.io/memory-pressure:节点有内存压力。
node.kubernetes.io/disk-pressure:节点有磁盘压力。
node.kubernetes.io/network-unavailable:节点的网络不可用。
node.kubernetes.io/unschedulable:节点不可调度。
node.cloudprovider.kubernetes.io/uninitialized:当kubelet从外部云服务提供程序启动时,在节点上设置此污点以将其标记为不可用。来自cloud-controller-manager的控制器初始化此节点后,kubelet删除此污点。
给k8s 删除节点
1- 添加污点
k8s 给节点打污点 :连接
kubectl drain 作用 : 连接