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

集群节点维护

kubectl cordon - 标记节点不可调度

作用

  • 将节点标记为 Unschedulable,阻止新 Pod 调度到该节点。
  • 不影响已运行 Pod,仅阻止新调度请求节点中原有Pod不受影响,仍正常对外提供服务
  • 原理

  • 修改节点的 spec.unschedulable 字段为 true。
  • 调度器会忽略该节点(类似给节点添加了 NoSchedule 污点)。

使用场景

  • 计划维护节点(如升级内核、硬件更换)。
  • 隔离问题节点进行调试。

示例

kubectl cordon <node-name>    # 标记节点不可调度
kubectl uncordon <node-name>  # 恢复节点可调度状态

kubectl drain - 驱逐节点

作用

  • 标记节点不可调度(等同于 cordon)。
  • 驱逐节点上所有 Pod(根据配置决定是否驱逐 DaemonSet 的 Pod)

示例

kubectl drain node-name --ignore-daemonsets --delete-emptydir-data# --ignore-daemonsets       忽略 DaemonSet 管理的 Pod(通常必须启用)
# --delete-emptydir-data    删除 EmptyDir 卷数据
# --force                   强制驱逐无控制器管理的 Pod(如裸 Pod)

使用场景

  • 安全下线节点(如节点退役、长期维护)。
  • 确保 Pod 优雅终止并重新调度到其他节点。

kubectl delete - 移除节点

作用

  • kubectl delete node ,从 Kubernetes API 中删除该节点的对象

潜在风险

  • Pod 被强制终止,未优雅终止的 Pod 可能导致数据丢失(尤其是有状态服务)
  • 服务中断,被删除节点上的 Pod 可能无法及时在其他节点重建
  • 资源泄漏,节点实际仍在运行但脱离集群管理

移除节点的正确操作流程

步骤 1:先排空(drain)节点

kubectl drain <node-name> \--ignore-daemonsets \--delete-emptydir-data \--force# --ignore-daemonsets:忽略 DaemonSet 管理的 Pod
# --delete-emptydir-data:清理临时存储数据
# --force:强制删除无控制器的裸 Pod

步骤 2:标记不可调度

  • 在执行 drain 时,Kubernetes 会先自动对目标节点执行 cordon 操作,确保在排空 Pod 的过程中不会有新 Pod 被调度到该节点。这是kubectl drain 命令的一个隐含行为
kubectl cordon <node-name>  # drain 已包含此操作

步骤 3:删除节点对象

kubectl delete node <node-name>

步骤 4:实际下线节点

  • 关闭/销毁对应的物理机或虚拟机
  • 如果是云厂商托管的节点,使用对应的云命令(如 gcloud compute instances delete)
http://www.jsqmd.com/news/543765/

相关文章:

  • SEO_本地商家必备的SEO优化解决办法与实战案例
  • 告别低效!Gvim批量操作全攻略:从日志分析到代码重构的实战技巧
  • LoRA训练助手实战案例:为国风插画师生成含工笔/水墨/岩彩等技法tag
  • DDR5 SDRAM自刷新操作避坑指南:从tCSH_SRexit到tXS的完整时序解析
  • 智慧园区的终极形态:从“功能堆砌”到“数据驱动”的生态化演进(PPT)
  • ESP32接入AWS IoT的嵌入式C SDK工程实践
  • 餐厅AI优化服务商全景解析:从GEO技术适配到效果落地的选型指南 - 品牌2025
  • 手把手教你用Docker一键部署DeepAudit:打造你的本地AI安全审计助手(支持通义千问/GLM)
  • VAP动画引擎:腾讯开源的高性能跨平台动画播放方案深度解析
  • AI产品经理面试题:如何平衡模型准确率与用户体验响应速度?
  • 5分钟提升90%效率:AudioSwitch音频设备智能管理指南
  • 7semi_L89HA:轻量级GNSS NMEA解析库设计与嵌入式实践
  • Claude Code Plugin 插件安装与说明
  • 如何挑选合适的恒温摇床?从双层恒温到二氧化碳摇床的厂家与品牌浅析 - 品牌推荐大师
  • 保姆级教程:用XTuner微调大模型,从环境配置到模型合并的完整避坑指南
  • ClawdBot基础实操:使用clawdbot channels status诊断Telegram通道
  • 硬字幕提取效率突破:SubtitleOCR技术革新与行业应用指南
  • 支付链路深度剖析(2):跨境支付的核心链路——钱是如何跨境的?
  • 从“双向选择排序”那个坑说起:调试3小时才发现的数组交换Bug,你的代码可能也有
  • 怎样专业优化华硕笔记本电池寿命:5个深度技术方案解析
  • Python开源代码管理避坑实战:从Git高级操作到Docker环境配置
  • 7种体脂指标大满贯!又一NHANES体脂肪指数类指标上线---锥度指数(C-index)
  • OpenClaw多任务编排:GLM-4.7-Flash并行处理技巧
  • SLAM Toolbox终极指南:5个技巧让你快速掌握机器人定位与建图
  • Obsidian Local Images Plus 图片本地化管理实用指南
  • 告别天猫精灵!用STM32F4+ESP8266自制智能音箱,成本不到100元(附完整代码)
  • 告别手动描图!用QGIS的‘Create points from table’和‘Points to Path’工具,5步搞定手机GPS轨迹矢量化
  • 7个技巧掌握实时3D渲染:XScene-UEPlugin完全指南
  • Co-DETR实战:从YOLO到COCO格式转换的完整避坑指南(附代码)
  • HunyuanVideo-Foley镜像优势解析:开箱即用、无依赖冲突、零环境报错