Skip to main content
版本:Next

删除节点池

OpenYurt NodePool 资源的最新版本为 apps.openyurt.io/v1beta2

字段与行为说明请以最新的 API 参考 为准。

约束说明

当节点池内仍存在节点时,不能删除该节点池。只有当集群中已没有任何仍属于该池的 Node 资源时,删除才会被允许。

节点上的节点池标签不可变更

节点上的绑定标签 apps.openyurt.io/nodepool 由 OpenYurt 管理。节点与节点池建立关联后,不要指望通过删除或修改该标签来迁移节点或“解绑”:

  • 该标签不支持手动删除。
  • 该标签不支持手动修改(例如改为指向其他节点池)。

使用 kubectl label 去清空或改写该标签不是受支持的清空节点池方式。若要减少池中节点,唯一受支持的做法是让对应的 Node 对象从集群中移除(见下文)。

确认节点池内是否还有节点

通过标签查看仍属于该节点池的节点:

kubectl get nodes -l apps.openyurt.io/nodepool=<节点池名称>

也可查看 NodePool 的 status

kubectl get nodepool <节点池名称> -o yaml

status.nodes 非空,说明池中仍有节点,此时不能删除该 NodePool。

删除节点池前:将节点从集群中移除

要删除某个 NodePool,当前仍属于该池的每个节点都必须不再作为 Node 存在于集群中。在按规范完成驱逐等工作后,从 API 中删除对应 Node(例如执行 kubectl delete node <节点名称>),具体步骤请遵循你们下线节点的运维规范。

若使用 yurtadm,典型流程可参考 移除节点

待这些 Node 对象均已删除后,再次确认池中已无成员:

kubectl get nodes -l apps.openyurt.io/nodepool=<节点池名称>

应无节点输出。

删除 NodePool

确认节点池内已无节点后,删除资源:

kubectl delete nodepool <节点池名称>

也可使用简写 np

kubectl delete np <节点池名称>