作者信息:https://home.cnblogs.com/u/huangjiabobk

在K8S中,内置的污点主要有哪些?

在Kubernetes (K8S)中,内置的污点(Taints)主要用于自动化的节点亲和性和反亲和性管理。当集群中的节点出现某种问题或满足特定条件时,kubelet会自动给这些节点添加内置污点。以下是一些常见的内置污点:

  1. node.kubernetes.io/not-ready:当节点尚未通过健康检查,即节点尚处于未就绪状态时,kubelet会给该节点打上这个污点,阻止新的Pod调度到该节点上。

  2. node.kubernetes.io/unreachable:如果节点无法从集群控制面获得,即节点被视为不可达时,kubelet会添加此污点,表明节点可能已经断开连接或者网络有问题。

  3. node.kubernetes.io/out-of-disk:当节点磁盘空间不足时,kubelet可能会添加此污点,表示节点上的磁盘资源已满。

  4. node.kubernetes.io/memory-pressure:当节点内存压力过高时,kubelet会应用此污点,意味着节点可用内存非常紧张。

  5. node.kubernetes.io/disk-pressure:类似于内存压力,当节点磁盘I/O压力过大时,会使用这个污点。

  6. node.kubernetes.io/network-unavailable:如果节点网络不可用,则可能应用此污点。

  7. node.kubernetes.io/unschedulable:管理员手动将节点标记为不可调度时,也会带有此污点。

  8. node.kubernetes.io/no-schedulenode.kubernetes.io/no-execute:这两种不是直接由kubelet自动设置的,但它们是系统预留的污点键,可以被用来阻止任何pod调度到节点上(NoSchedule),或者不仅阻止新pod调度,并且驱逐已经在节点上运行的不兼容pod(NoExecute)。

综上所述,针对这些内置污点,对应的Pod可以通过在其容忍度(Tolerations)中声明来决定是否可以在这样的节点上运行。

posted @ 2024-02-03 09:00  黄嘉波  阅读(91)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波