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.mzph.cn/news/901681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息安全管理与评估2021年国赛正式卷答案截图以及十套国赛卷

2021年全国职业院校技能大赛高职组 “信息安全管理与评估”赛项 任务书1 赛项时间 共计X小时。 赛项信息 赛项内容 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 平台搭建与安全设备配置防护 任务1 网络平台搭建 任务2 网络安全设备配置与防护 第二…

3D语义地图中的全局路径规划!iPPD:基于3D语义地图的指令引导路径规划视觉语言导航

作者&#xff1a; Zehao Wang, Mingxiao Li, Minye Wu, Marie-Francine Moens, Tinne Tuytelaars 单位&#xff1a;鲁汶大学电气工程系&#xff0c;鲁汶大学计算机科学系 论文标题&#xff1a; Instruction-guided path planning with 3D semantic maps for vision-language …

《AI大模型应知应会100篇》第20篇:大模型伦理准则与监管趋势

第20篇&#xff1a;大模型伦理准则与监管趋势 摘要 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;尤其是大模型&#xff08;如GPT、PaLM等&#xff09;在自然语言处理、图像生成等领域的广泛应用&#xff0c;AI伦理问题和监管挑战日益凸显。本文将梳理当…

【Ai】dify:Linux环境安装 dify 详细步骤

一、什么是dify Dify 是一个 开源的大语言模型(LLM)应用开发平台,旨在帮助开发者快速构建基于 AI 的应用程序,例如智能对话助手、知识库问答、内容生成工具等。它提供了可视化的流程编排、模型集成、数据管理等功能,降低了开发门槛,支持快速迭代和部署。 核心功能与特点…

CentOS 操作系统下搭建 tsung性能测试环境

写在前面 为何这么安装,实际就是这么做的,这是经过好几次实践得出的经验总结。 这为了让大家更清楚的知道怎么安装 tsung性能测试环境,按步照搬的安装即可。 步骤 1、 下载软件安装包 CentOS-6.0-x86_64-bin-DVD1.iso jdk-6u4-linux-x64-rpm.bin erlang: otp_src_1…

Vulkanised

Vulkanised 1. About VulkanisedReferences The Premier Vulkan Developer Conference premier /ˈpremiə(r)/ n. 总理&#xff1b;(尤用于报章等) 首相&#xff1b;(加拿大的) 省总理&#xff1b;地区总理 adj. 第一的&#xff1b;首要的&#xff1b;最著名的&#xff1b;最…

C++之 动态数组

一、新建一个动态数组 数组名和下标操作符[]的组合可以被替换成一个指向该数组的基地址的指针和对应的指针运算&#xff1a; int a[20]; int *x a; 指针变量 x 指向数组 a 的地址&#xff0c; a[0] 和 *x 都代表数组的第一个元素。 于是&#xff0c;根据指针运算原则&…

ubuntu1804服务器开启ftp,局域网共享特定文件给匿名用户

要在 Ubuntu 18.04 上设置一个 FTP 服务器&#xff0c;满足以下要求&#xff1a; 允许匿名登录&#xff08;无需账号密码&#xff09;。指定分享特定目录下的文件。只允许只读下载。 可以使用 vsftpd&#xff08;Very Secure FTP Daemon&#xff09;来实现。以下是详细步骤&a…

mcp和API区别

MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;与传统API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;在技术架构、集成方式和应用场景等方面存在显著差异&#xff0c;以下是主要区别的总结&#x…

高版本Android (AIDL HAL) 使用HIDL方法

目录 修改步骤和编译方法 注意事项 Android 11 引入了使用 AIDL 实现 HAL 的功能。 后续Android新版本,HAL默认切到了使用AIDL. 因此当导入旧HIDL实现方式时,需要做一些修改。 1.将HAL HIDL模块拷贝到相应目录,进行编译 source build/envsetup.sh lunch xxx mmm 模块路径 1.…

基于redis 实现我的收藏功能优化详细设计方案

基于redis 实现我的收藏功能优化详细设计方案 一、架构设计 +---------------------+ +---------------------+ | 客户端请求 | | 数据存储层 | | (收藏列表查询) | | (Redis Cluster) | +-------------------…

学习笔记 - Swfit 6.1 - 语法概览

获取版本号 swift -versionHello world print("Hello, world!")末尾不需要分号 值 常量(let),变量(var) var myVariable 42 myVariable 50 let myConstant 42可以显式声明变量类型,若没有则隐式推断,类似下面的Double let implicitInteger 70 let implicit…

确保连接器后壳高性能互连的完整性

本文探讨了现代后壳技术如何促进高性能互连的电气和机械完整性&#xff0c;以及在规范阶段需要考虑的一些关键因素。 当今的航空航天、国防和医疗应用要求连接器能够提供高速和紧凑的互连&#xff0c;能够承受振动和冲击&#xff0c;并保持对电磁和射频干扰 &#xff08;EMI/R…

第IV部分有效应用程序的设计模式

第IV部分有效应用程序的设计模式 第IV部分有效应用程序的设计模式第23章:应用程序用户界面的架构设计23.1设计考量23.2示例1:用于非分布式有界上下文的一个基于HTMLAF的、服务器端的UI23.3示例2:用于分布式有界上下文的一个基于数据API的客户端UI23.4要点第24章:CQRS:一种…

学习笔记十四——一文看懂 Rust 迭代器

&#x1f300; 一文看懂 Rust 迭代器 &#x1f4da; 目录导航 什么是迭代器&#xff1f;为什么 Rust 到处都在用它&#xff1f;Rust 迭代器的底层逻辑是什么&#xff1f;适配器 vs 消费者&#xff1a;谁是主角&#xff1f;常见适配器&#xff1a;加工数据的全能工厂常见消费者…

QR轻量二维码生成系统PHP源码

源码介绍 基于PHP编写的二维码在线生成系统。只需点击几下就可以生成您的个人二维码&#xff01;上传您的徽标&#xff0c;选择自定义颜色&#xff0c;生成多种类型。选择一个图案并下载最终的qrcode。可用格式&#xff1a;.png&#xff0c;.svg 效果预览 源码获取 QR轻量二…

基于Spring MVC的客户端真实IP获取方案解析

文章目录 基于Spring MVC的客户端真实IP获取方案解析概述核心方法解析代码实现工作流程 IP获取优先级策略IP有效性验证异常处理与日志使用场景注意事项扩展建议 基于Spring MVC的客户端真实IP获取方案解析 概述 在Web应用开发中&#xff0c;准确获取客户端真实IP地址是常见的…

Idea集成AI:CodeGeeX开发

当入职新公司&#xff0c;或者调到新项目组进行开发时&#xff0c;需要快速熟悉项目代码 而新的项目代码&#xff0c;可能有很多模块&#xff0c;很多的接口&#xff0c;很复杂的业务逻辑&#xff0c;更加有与之前自己的代码风格不一致的现有复杂代码 更别提很多人写代码不喜…

Python(18)Python中JSON的妙用:详解序列化与反序列化原理及实战案例

目录 一、背景&#xff1a;为什么Python需要JSON&#xff1f;二、核心技术解析&#xff1a;序列化与反序列化2.1 核心概念2.2 类型映射对照表 三、Python操作JSON的四大核心方法3.1 基础方法库3.2 方法详解1. json.dumps()2. json.loads()3. json.dump()4. json.load() 四、实战…

【物联网】基于LORA组网的远程环境监测系统设计

基于LORA组网的远程环境监测系统设计 演示视频: 简介: 1.本系统有一个主机,两个从机。 2.一主多从的LORA组网通信,主机和两个从机都配备了STM32F103单片机与 LoRa 模块,主机作为中心设备及WIFI网关,负责接收和发送数据到远程物联网平台和手机APP,两个从机则负责采集数…