当前位置: 首页 > ai >正文

Kubernetes 节点摘除指南

目录

一、安全摘除节点的标准流程

1. 确认节点名称及状态

2. 标记节点为不可调度

3. 排空(Drain)节点

4. 删除节点

二、验证节点是否成功摘除

1. 检查节点列表

2. 检查节点详细信息

3. 验证 Pod 状态

三、彻底清理节点(可选)

1. 停止并重置 kubelet

2. 清理残留文件

3. 删除证书(如果使用 kubeadm)

四、常见问题

1. 节点状态一直为 NotReady

2. 无法删除节点


一、安全摘除节点的标准流程

1. 确认节点名称及状态

首先通过以下命令获取节点列表:

kubectl get nodes -o wide

找到需摘除的节点名称,并确认其状态为 Ready。若节点已异常(如 NotReady),需先排查问题或强制操作。

2. 标记节点为不可调度

使用 cordon 命令阻止新 Pod 调度到该节点:

kubectl cordon <node-name>

验证节点状态:

kubectl get nodes <node-name>
#输出中 "STATUS" 应为 "SchedulingDisabled"
3. 排空(Drain)节点

在移除节点前,需确保该节点上的 Pod 被安全迁移到其他节点,避免服务中断。

kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
  • --ignore-daemonsets:忽略 DaemonSet 管理的 Pod(如日志收集组件)。

  • --delete-emptydir-data:删除使用 emptyDir 卷的 Pod 数据。

  • 注意:如果存在无法自动迁移的 Pod(如没有副本的裸 Pod),需手动处理或添加 --force 参数。

4. 删除节点

驱逐完成后,执行以下命令从集群中移除节点:

kubectl delete node <node-name>

二、验证节点是否成功摘除

1. 检查节点列表

使用 get nodes 确认节点已消失:

kubectl get nodes
  • 如果节点已成功删除,列表中不再显示该节点。

  • 如果节点仍在列表中但状态为 NotReady,可能需检查网络或手动清理。

2. 检查节点详细信息
kubectl describe node <node-name>
  • 若节点已删除,会返回错误 

  • Error from server (NotFound): nodes "<node-name>" not found。
3. 验证 Pod 状态

检查原节点上的 Pod 是否已重新调度到其他节点:

kubectl get pods -o wide | grep node1
# 应无输出,表示所有 Pod 已迁移

三、彻底清理节点(可选)

如果节点需要从物理/虚拟环境中永久移除,还需在节点本机执行以下操作:

1. 停止并重置 kubelet
systemctl stop kubelet
kubeadm reset -f
2. 清理残留文件
rm -rf /etc/kubernetes/*
rm -rf ~/.kube/config
3. 删除证书(如果使用 kubeadm)
rm -rf /etc/kubernetes/pki/

四、常见问题

1. 节点状态一直为 NotReady
  • 检查节点网络是否正常。

  • 检查节点上的 kubelet 是否在运行:

    systemctl status kubelet
2. 无法删除节点
  • 确认已执行 kubectl drain

  • 强制删除节点(谨慎操作):

    kubectl delete node <node-name> --force --grace-period=0

    通过以上步骤,可以安全摘除 Kubernetes 集群中的节点并验证结果。

http://www.xdnf.cn/news/944.html

相关文章:

  • LintCode第107题-单词拆分
  • 全排列问题cpp
  • Discuz论坛网站忘记管理员密码进不去管理中心怎么办?怎么改管理员密码?
  • stc32单片机实现串口2M波特率满带宽传输
  • C#接口开发异常:System.Web.HttpRequestValidationException
  • Linux421用户、组
  • qt画一朵花
  • ​001-内网穿透工具
  • 20250421在荣品的PRO-RK3566开发板的Android13下使用io命令控制GPIO
  • ArcGIS、ArcMap查看.shp文件时属性表中文乱码
  • 软件工程师中级考试-上午知识点总结(下)
  • Linux内核开发常用函数
  • Git创建空分支并推送到远程仓库
  • 大模型中超参数TopK是什么
  • 密码明文放在请求体是否有安全隐患?
  • 前端实战-AJAX
  • Spark(19)Yarn-tool接口
  • 力扣热题100——矩阵
  • 安卓的桌面 launcher是什么
  • 【AI】SpringAI 第三弹:接入通用大模型平台
  • CSS字体
  • 什么是SPA,SPA与MAP区别
  • redis-7 安装
  • 机器学习中,什么叫监督学习?什么叫非监督学习?
  • MCP(Minecraft Coder Pack)完全指南:从入门到精通
  • JavaScript 渲染内容爬取:Puppeteer 入门
  • PCIE Spec ---Base Address Registers
  • 每日算法-250421
  • 应急物资管理系统DW-S300|构建应急物资保障体系
  • Netdata 监控多台服务器