K8s: 将一个节点移出集群和相关注意事项

k3s|如何将k8s集群的node节点设置不可调度或删除node节点? k3s是由 Rancher 公司开发的轻量级Kubernetes,是经CNCF一致性认证的Kubernetes发行版,专为物联网及边缘计算设计。由于运行 K3s 所需的资源相对较少,所以 K3s 也适用于开发和测试场景。 阅读详情

前置步骤


在Kubernetes集群中,要移出一个节点,你需要执行以下步骤:

1 )将节点标记为不可调度

  • 首先,你需要将目标节点标记为不可调度,以确保Kubernetes不会在该节点上调度新的Pod
  • 这可以通过执行以下命令实现:$ kubectl cordon <node-name>
    • 其中 是你想要移出的节点的名称
    • 这个命令会将节点设置为不可调度状态
    • 这样Kubernetes就不会在这个节点上安排新的Pod了

2 ) 驱逐节点上的Pod

  • 在标记节点为不可调度之后,你需要将节点上的所有Pod驱逐到其他可用的节点上
  • 这可以通过执行以下命令完成
  • $ kubectl drain <node-name> --delete-local-data --force --ignore-daemonsets
    • 这个命令会触发Pod的正常终止过程,并将它们迁移到其他可用的节点上
    • 注意
      • --delete-local-data 标志表示允许删除节点上由Pod使用的本地数据
      • --force 标志表示强制驱逐Pod
      • --ignore-daemonsets 标志表示忽略DaemonSets管理的Pod

3 ) 从集群中移除节点

  • 一旦节点上的所有Pod都被成功驱逐到其他节点,你就可以从集群中移除该节点了
  • 这通常涉及到从集群的配置中删除节点的信息,具体的操作取决于你使用的Kubernetes部署方式(如kubeadm、Minikube、Kops等)
  • 在某些情况下,这可能涉及到在云平台上删除支持该节点的虚拟机

4 ) 验证节点移除

  • 最后,你应该验证节点是否已经从集群中成功移除

  • 可以通过执行以下命令来检查集群中的节点列表:$ kubectl get nodes

    • 如果移出的节点不再出现在列表中,那么说明节点已成功从集群中移除
  • 请注意,在执行这些操作之前,确保已经备份了所有重要的数据和配置,以防万一出现意外情况

  • 此外,如果你在生产环境中操作,请务必先在测试环境中验证所有步骤,以确保操作的正确性和安全性

后续处理

  • 执行后,发现那个节点的 STATUS 是:NotReady,SchedulingDisabled

  • 如果在执行 kubectl cordon 和 kubectl drain 命令后,节点的状态变为 NotReady,SchedulingDisabled

  • 这通常意味着节点已经被标记为不可调度(SchedulingDisabled)

  • 但尚未成功将所有Pod驱逐到其他节点或节点本身存在某些问题导致它无法进入Ready状态

  • 以下是你可以尝试的几个步骤来解决这个问题:

1 ) 检查Pod驱逐状态

  • 使用 $ kubectl get pods --all-namespaces -o wide 命令查看所有Pod的状态和它们所在的节点
  • 确保所有原本在该节点上的Pod都已经被成功驱逐到其他节点。

2 ) 检查节点事件

  • 使用 $ kubectl describe node <node-name> 命令来查看节点的详细信息
  • 特别是 Events 部分,看看是否有关于该节点为何变成 NotReady 的信息。

3 ) 检查节点日志

  • 如果可能的话,登录到该节点上,检查kubelet和其他相关组件的日志,了解为什么节点不能进入Ready状态
  • 在节点上运行如 $ journalctl -u kubelet 的命令可以查看 kubelet 的日志

4 ) 检查网络问题

  • 确保节点与Kubernetes集群的其他部分(如API服务器)之间的网络连接是正常的
  • 网络问题可能是导致节点无法就绪的常见原因。

5 ) 检查资源使用情况

  • 使用 $ kubectl top nodes 和 kubectl top pods --all-namespaces 命令来检查节点的资源使用情况
  • 包括CPU、内存和磁盘空间。确保节点没有资源耗尽的情况。

6 ) 尝试重启kubelet

  • 有时候,简单地重启kubelet服务可以让节点恢复到正常状态
  • 使用适用于你系统的相应命令来重启kubelet(如 $ systemctl restart kubelet)

7 ) 检查节点硬件和配置:

  • 如果上述步骤都没有解决问题,可能需要检查节点的硬件状态
  • 如磁盘、内存、CPU等配置,以确定是否存在硬件故障或配置错误

8 ) 手动移除节点

  • 如果节点确实无法恢复,并且你确定要从集群中移除它
  • 你可以使用 $ kubectl delete node <node-name> 命令来手动从集群中移除节点
  • 但是,请注意,这不会从云提供商处删除实际的虚拟机实例;你需要手动完成这一步骤(如果适用)

特别注意

  • 在进行任何操作之前,请确保你已经备份了所有重要的数据和配置,以防万一出现数据丢失或配置错误
  • 此外,如果你在生产环境中操作,请务必先在测试环境中验证所有步骤
2、k8s命令(pod相关(驱逐、强制删除)、让Master当Node用、修改nodeport端口范围、修改k8sDNS、运行nslookup容器) 驱逐pod相关 1、驱逐节点上的pod kubectl drain node02 --delete-local-data --ignore-daemonsets --force 2、将node置为SchedulingDisabled不可调度状态,后续的新创建pod容器时scheduler调度不会考虑该node,旧的pod容器不会受影响,仍可以对外提供正常服务。(特殊情况:pod容器如果跟node绑定的话,容器下次更新就不会回到原宿主机,该情况如何处理呢?可能设置成不可调度状态就不太合适。调度器 预调度策略 阅读详情

相关推荐

K8S故障临时设置节点为不可调度

k8s中节点故障处理方式

weixin_45432833的博客 1930

k8s节点简介、移除节点、新增节点

简介 Node是Pod真正运行的主机,可以是物理机也可以是虚拟机。 Node本质上不是Kubernetes来创建的, Kubernetes只是管理Node上的资源。 为了管理Pod,每个Node节点上至少需要运行container runtime(Docker)、kubelet和kube-proxy服务。 node基本操作:kubectl get nodes,查询所有node 从k8s移除no...

全栈测试笔记 4941

K8s节点异常诊断与修复实战:从NotReady到自动化运维

在Kubernetes集群运维中,节点异常是影响服务稳定性的常见挑战。其核心原理在于Kubelet与API Server之间的心跳机制中断,导致节点状态变为NotReady或Unknown,进而触发Pod驱逐与重新调度。理解节点生命周期管理、资源压力驱逐策略以及网络CNI插件的工作原理,对于保障集群高可用至关重要。从工程实践角度,这涉及对系统资源监控、证书轮换机制、网络连通性测试以及污点与容忍度调度策略的综合运用。本文聚焦于节点资源压力、Kubelet故障及网络分区等典型场景,通过实战案例拆解,提供从快速诊

weixin_30856725的博客 381

k8s集群节点状态变成NotReady,SchedulingDisabled

k8s集群节点状态变成NotReady,SchedulingDisabled。 otReady,是因为kubelet服务与kube-apiserver没有正常通信,需要检查kube-apiserver,kubelet服务是否正常。 SchedulingDisabled,是因为节点被隔离,需要uncordon节点 systemctl stop kube-apiserver systemctl start kube-apiserver systemctl restart kubelet kubectl unc

AI架构师Array的博客 5436

从GPU集群到太空算力:AI算力基础设施的演进与混合架构实践

GPU作为AI计算的基石,其并行架构完美契合深度学习的大规模矩阵运算需求,从训练到推理都离不开强大的算力支持。随着大模型竞赛白热化,算力已成为AI公司的核心战略资源,高效获取与管理算力直接影响模型迭代速度与服务稳定性。面对能源成本、散热瓶颈和地理限制,算力基础设施正从传统数据中心向边缘计算、甚至太空计算等新形态探索。本文围绕大规模异构GPU集群的整合优化与太空算力构想,探讨如何通过混合算力池管理、软件栈调度与性能调优,应对算力需求暴涨与成本控制的双重挑战,为AI工程实践提供从地面到轨道的全景视角。

weixin_30755393的博客 388

企业级AI Agent生产部署全流程:从架构设计到监控运维实战指南

这次我们来看一个来自 Databricks 主管分享的企业级 AI Agent 生产实践。对于很多开发者来说,AI Agent 的概念已经不陌生,但如何将一个实验性的 Agent 项目,真正落地到企业生产环境,解决实际问题并稳定运行,才是真正的挑战。这篇文章将聚焦于企业级 Agent 的落地全流程,从核心架构选型、环境与数据准备,到服务部署、监控与规模化扩展,提供一套可复制的实践指南。 如果你关心如何将 LangChain、AutoGPT 或自定义 Agent 框架从本地 Demo 推向生产,如何管理其生命

weixin_34279184的博客 341

【免登录下载】PY32F002A FreeRTOS移植指南:用完整示例快速跑通嵌入式多任务

普冉PY32F002A FreeRTOS移植资源文件是一套完整的嵌入式RTOS开发示例:把FreeRTOS V9.0移植到普冉M0芯片PY32F002A上,基于KEIL和LL库实现,芯片上可运行四个任务,并附带大部分外设的.c驱动文件。它适合想在内存较小的MCU上快速跑通多任务、又不想从零踩坑的开发者。 ## 项目解决什么问题 ### 小内存MCU上如何降低FreeRTOS移植的试错成本 把

gitblog_00536的博客 433

Linux内核侧信道攻击原理与防御:从缓存计时到Spectre漏洞实战解析

侧信道攻击是一种通过分析系统运行时产生的物理或行为特征(如执行时间、功耗、电磁辐射等)来窃取敏感信息的技术,它不直接攻击算法或代码逻辑,而是利用硬件优化特性无意中泄露的信息。其核心原理在于,现代计算机的微架构设计(如CPU缓存、分支预测、推测执行)在提升性能的同时,会创建可观测的旁路信息通道。这种攻击的技术价值在于它能绕过传统的逻辑安全防御,直接威胁加密密钥、内核状态等核心机密。在云计算、多租户环境中,侧信道攻击已成为跨虚拟机、跨容器数据泄露的重要威胁。针对Linux内核,主流的攻击技术包括缓存计时攻击、分

mxdxm8899的专栏 191

Kubernetes 主机名不能包含大写字母

【代码】Kubernetes 主机名不能包含大写字母。

喝醉酒的小白 751

AI工程实践指南:从Newsletter到可复现的AI基建决策系统

在AI技术快速迭代的背景下,工程师亟需一种兼顾时效性、可验证性与工程落地性的知识获取方式。AI newsletter作为一种轻量级知识操作系统,其核心价值在于将碎片化工具信息升维为结构化决策依据——通过最小可行测试(MVP Test)保障可用性,结合API调用成本与延迟实测实现量化选型,并依托可复现性等级(✅/⚠️/❌)控制技术引入风险。这类实践导向的内容形态,本质上是面向LLM应用开发、RAG系统优化、本地模型微调等真实场景的技术校准机制,尤其适用于需要在有限算力(如M2 Mac)、明确SLA(如P99<

weixin_34277853的博客 435

TRAE SOLO移动端深度解析:轻量AI工作流如何重构移动开发范式

AI编程工具正从桌面IDE向泛终端延伸,其核心演进逻辑是将‘模型调用+代码执行+状态协同’的完整工作流,适配至资源受限但场景高频的移动设备。这背后涉及边缘推理调度、会话状态同步、手势驱动交互等关键技术突破。TRAE SOLO并非简单移植,而是以Single-Operation Lightweight Orchestrator为设计原点,通过本地小模型(如MicroCoder-1.3B)与云端大模型(如Qwen2-7B)协同推理,在保障低延迟与高可信的同时,支撑API调试、PRD生成、H5文案修改等真实工程场

chuiqi9947的博客 418

Nacos配置中心实战:从部署到Spring Boot集成与生产运维

在微服务架构中,配置管理是保障系统稳定性和灵活性的关键技术。其核心原理在于实现配置与代码的分离,通过集中化管理解决传统配置文件方式带来的维护困难、环境不一致和无法动态更新等痛点。配置中心的技术价值在于提供统一的配置存储、版本控制和动态下发能力,从而支持服务的快速迭代与弹性伸缩。典型的应用场景包括多环境部署、业务开关切换、连接参数管理等。本文聚焦于Nacos配置中心的实战应用,详细阐述了其单机与集群部署方案,并深入解析了与Spring Boot的集成方法,特别是如何实现配置的动态刷新,以应对微服务架构下的高频

weixin_33858485的博客 860

【信息科学与工程学】计算机科学与自动化-——第十五篇云计算 11 算法篇

在百万级虚拟机、百万级租户的超大规模云环境中,核心算法挑战包括:挑战维度具体问题算法需求技术复杂度规模性​百万级对象并发管理分布式算法、分区算法极高(NP-hard问题)多租户​租户间隔离与资源共享公平性算法、隔离算法高(多目标优化)动态性​资源需求实时变化自适应算法、在线算法高(实时决策)异构性​硬件/负载/需求差异分类算法、匹配算法中高(多维度优化)经济性​资源利用率与成本平衡优化算法、博弈论算法高(多目标博弈)以下是按领域分类的详细算法列表:算法名称数学建模表达核心思想时间复杂度适用场景推理步骤首次适

weixin_49199313的博客 1405

C++构建AI推理负载均衡器:高性能架构与核心算法实现

负载均衡是分布式系统中的核心技术,其核心原理在于将网络请求或计算任务智能分发到多个后端服务器,以提升系统整体吞吐量、资源利用率和可用性。在AI推理场景下,这一技术面临前所未有的挑战:请求的计算负载因输入序列长度、模型复杂度等因素差异巨大,后端GPU资源在算力、内存等方面存在异构性,同时还需满足严格的低延迟SLA要求。传统的轮询或最少连接算法难以应对,需要更精细的调度策略。C++凭借其零开销抽象和极致控制能力,成为构建高性能负载均衡器的理想选择。通过实现**加权最少队列深度**、**最短预估完成时间**等核心

cong84596496的博客 383

使用SAM进行遥感图像语义分割

SAM(Segment Anything Model)的成功表明了以数据为中心的机器学习的重要性。然而,由于遥感(RS)图像注释的困难和高成本,大量有价值的RS数据仍然没有被标记,特别是在像素级。在这项研究中,我们利用SAM和现有的RS物体检测数据集,开发了一个高效的管道来生成大规模的RS分割数据集,称为SAMRS。SAMRS在规模上超过了现有的高分辨率RS分割数据集几个数量级,并提供了物体类别、位置和实例信息,可用于语义分割、实例分割和物体检测,无论是单独还是组合。

lalula的博客 7453

ESP32水墨屏日历实战:低功耗自动更新与HTTPS数据解析

本文详细介绍了ESP32水墨屏日历项目的开发实践,重点讲解了低功耗自动更新与HTTPS数据解析的实现方法。通过ESP32的自动休眠功能和水墨屏的零功耗特性,结合HTTPS请求安全获取网络数据,实现了高效节能的桌面日历应用。项目代码开源,适合物联网开发者参考。

xx56789的博客 778

k8s删除node节点

一、删除node节点 1、先查看一下这个node节点上的pod信息 kubectl get nodes 2、驱逐这个node节点上的pod kubectl drain node01 --delete-local-data --force --ignore-daemonsets 3、删除这个node节点 kubectl delete nodes node01 4、然后在node06这个节点上执行如下命令: kubeadm reset ​ systemctl stop kub...

m0_60496726的博客 1万+

别再到处找包了!Keil5芯片支持包(Pack)最全管理指南:安装、更新、迁移与离线备份

本文详细解析了Keil5芯片支持包(Pack)的全生命周期管理,包括安装、更新、迁移与离线备份的工程化解决方案。针对STM32F10x等常见芯片,提供了高效获取Pack的策略、版本管理技巧及团队协作方案,帮助开发者解决常见的'Device Family Pack missing'等问题,提升嵌入式开发效率。

weixin_28729205的博客 542

Node节点禁止调度(平滑维护)方式- cordon,drain,delete

默认情况下,kubectl drain 会忽略那些不能杀死的系统类型的 pod。drain命令中需要添加三个参数:--force、--ignore-daemonsets、--delete-local-data。cordon、drain和delete三个命令都会使node停止被调度,后期创建的pod不会继续被调度到该节点上,但操作的暴力程度却不一样。通常情况下,如果要对K8S集群中的一台Node节点进行平滑维护,如升级或调整配置。(不可调度,临时从K8S集群隔离)(先不可调度,然后排干)

大叶子不小的博客 3290

OpenClaw与Ollama本地AI部署指南

AI模型本地化部署是当前企业数字化转型的关键技术,通过开源框架Ollama可以在消费级硬件上运行大语言模型。本文以OpenClaw多智能体系统为例,详解从环境配置到模型优化的全流程实践,特别针对国内开发者遇到的网络问题提供了镜像加速等解决方案。这种私有化部署方案尤其适合金融数据分析、企业知识管理等对数据安全要求高的场景,通过模块化设计实现多智能体协作,同时保持对NVIDIA显卡和普通CPU的兼容性。

weixin_34302561的博客 400

C2000ware介绍

C2000的下载安装指南C2000目录。

小柚子的博客 2798

k8s集群中节点退出、重入

本文章基于kubeadm方式部署的k8s集群进行讲解,其他方式部署的k8s集群会有出入,不要照搬。 在硬件升级,维护或节点出现异常等情况下,我们需要将某些剔除,使其脱离kubernetes集群的调度范围。 一、节点退出(剔除) 先将要剔除会退出的节点设置成不可调度状态,设置好之后节点状态上会多了一个 “SchedulingDisabled”标记,这样新创建的pod就不会网该节点调度 kubectl cordon test-k8s-node05 之后驱逐调节点上的pod kubectl drain test

zenglingmin8的博客 6055

让openclaw接入web端的deepseek或着qwen,使用无限token

🪟 Windows: 提供原生的 PowerShell 一键安装支持!配置过程和官方版本是相同的,唯一的区别就是再选则model时要选择带Browser字样的deepseek或者qwen。安装之前需要先清理官方版本的安装痕迹,否则openclaw版本跳转不到这个中文版本。因为此版本与官方版本存在代差,在配置飞书时可能会出现无法安装飞书的情况。剩下的配置保持和官方版本一致操作即可。选中之后需要进行一次网页端的登录。登录后会出现可选择的model。安装完成后会跳到这个中文界面。涉及到接入飞书机器人的操作。

z1872385的博客 303
上一篇: K8s: 裸机初始化Kubernetes集群环境
下一篇: Go微服务: go-micro集成consul的注册中心和配置中心
Wang's Blog
博客等级 码龄12年 7438粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值