K8s: 将一个节点移出集群和相关注意事项
前置步骤
在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>
命令来手动从集群中移除节点 - 但是,请注意,这不会从云提供商处删除实际的虚拟机实例;你需要手动完成这一步骤(如果适用)
特别注意
- 在进行任何操作之前,请确保你已经备份了所有重要的数据和配置,以防万一出现数据丢失或配置错误
- 此外,如果你在生产环境中操作,请务必先在测试环境中验证所有步骤
相关文章:
K8s: 将一个节点移出集群和相关注意事项
前置步骤 在Kubernetes集群中,要移出一个节点,你需要执行以下步骤: 1 )将节点标记为不可调度 首先,你需要将目标节点标记为不可调度,以确保Kubernetes不会在该节点上调度新的Pod这可以通过执行以下命令实…...
Python学习笔记24 - 学生信息管理系统
1. 需求分析 2. 系统设计 3. 系统开发必备 4. 主函数设计 5. 学生信息维护模块设计 a. 录入学生信息 b. 删除学生信息 c. 修改学生信息 d. 查询学生信息 e. 统计学生总人数 f. 显示所有学生信息 g. 排序模块设计 6. 项目打包...
【物联网应用案例】某制造企业电锅炉检测项目
供暖行业在我国的经济发展中占据着重要的地位,然而,长期以来,该行业存在着自动化水平低、管理效率不高等问题,制约了其持续发展。为了解决这些问题,吉林某电锅炉生产厂家进行了一项创新性的尝试。 该厂家通过集成物联…...
设计模式实践
结合设计模式概念和在java/spring/spring boot中的实战,说明下列设计模式。 一、工厂模式 这里只讲简单工厂模式,详细的可以参考Java工厂模式(随笔)-CSDN博客。工厂类会根据不同的参数或条件来决定创建哪种对象,这样…...
嵌入式学习52-ARM1
知识零散: 1.flash: nor flash 可被寻地址 …...
Java(MySQL基础)
数据库相关概念 MySOL数据库 关系型数据库(RDBMS) 概念: 建立在关系模型基础上,由多张相互连接的二维表组成的数据库。特点: 使用表存储数据,格式统一,便于维护使用SQL语言操作,标准统一,使用方便 SQL SOL通用语法…...
预约系统的使用
预约系统的使用 目录概述需求: 设计思路实现思路分析1.用户年规则 在 预约系统中的使用流程 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wa…...
酷开科技OTT大屏营销:开启新时代的营销革命
随着互联网技术的不断发展和普及,大屏已经成为越来越多家庭选择的娱乐方式。在这个背景下,酷开科技凭借其强大的技术实力和敏锐的市场洞察力,成功地将大屏转化为一种新的营销渠道,为品牌和企业带来了前所未有的商业机会。 酷开科技…...
网络安全(防火墙,IDS,IPS概述)
问题一:什么是防火墙,IDS,IPS? 防火墙是对IP:port的访问进行限制,对访问端口进行制定的策略去允许开放的访问,将不放开的端口进行拒绝访问,从而达到充当防DDOS的设备。主要是拒绝网络流量,阻断所有不希望出现的流程,禁止数据流量流通,达到安全防护的作用。如将一些恶…...
安装IntelliJ IDEA插件教程
安装IntelliJ IDEA插件:一份详细指南 在提升IntelliJ IDEA开发效率的过程中,插件扮演着不可或缺的角色。它们为IDE提供了额外的功能和工具,以满足开发者在特定编程语言、框架、测试、版本控制等方面的个性化需求。本文将为您详细阐述如何在I…...
大厂基础面试题(之四)
Q1:请先进行自我介绍 Q2:说下你学习前端的详细过程 Q3:一个页面从url输入到显示页面的整个过程 1.URL解析 2.DNS解析 3.建立TCP连接 4.发起HTTP请求 5.服务器处理请求 6.返回HTTP响应 7.下载页面资源 8.解析和渲染页面 9.JavaScript执行 10…...
为什么我们应该切换到Rust
What is RUST? 什么是Rust? Rust is a programming language focused on safety, particularly safe concurrency, supporting functional and imperative-procedural paradigms. Rust is syntactically similar to C, but it provides memory safety without usi…...
基于Linux定时任务实现的MySQL周期性备份
1、创建备份目录 sudo mkdir -p /var/backups/mysql/database_name2、创建备份脚本 sudo touch /var/backups/mysql/mysqldump.sh# 用VIM编辑脚本文件,写入备份命令 sudo vim /var/backups/mysql/mysqldump.sh# 内如如下 #!/bin/bash mysqldump -uroot --single-…...
【Altium Designer 20 笔记】隐藏PCB上的信号线(连接线)
使用网络类隐藏特定类型的信号线 如果你想要隐藏特定类型的信号线(例如电源类),你可以首先创建一个网络类。使用快捷键DC调出对象类浏览器,在Net Classes中右击添加类,并重命名(例如为“Power”࿰…...
【Git教程】(九)版本标签 —— 创建、查看标签,标签的散列值,将标签添加到日志输出中,判断标签是否包含特定的提交 ~
Git教程 版本标签(tag) 1️⃣ 创建标签2️⃣ 查看存在的标签3️⃣ 标签的散列值4️⃣ 将标签添加到日志输出中5️⃣ 判断tag是否包含特定的提交🌾 总结 大多数项目都是用 1.7.3.2和 “ gingerbread” 这样的数字或名称来标识软件版本的。在 …...
MemberPress配置和使用会员登录页面
目录 隐藏 创建会员登录页面 编辑登录页面 设计您的登录页面 链接到您的登录页面 创建会员登录页面 要创建MemberPress会员登录页面,您需要做的就是导航到 MemberPress > 设置 > 页面选项卡,然后在页面顶部附近的“MemberPress 登录页面”…...
分享一个预测模型web APP的功能模块和界面的设计
一个临床预测模型web APP功能模块与界面设计 随着医疗技术的不断进步,web APP是临床预测模型在医学领域的应用的重要形式。这里分享一个web APP的设计,手里有医学预测模型的可以尝试将其构建成webAPP,进而在临床实践中体验预测模型带来的便利…...
智慧公厕是智慧城市建设中不可或缺的一部分
智慧城市的数字化转型正在取得显著成效,各项基础设施的建设也在迅速发展,其中智慧公厕成为了智慧城市体系中不可或缺的一部分。作为社会生活中必要的设施,公共厕所的信息化、数字化、智慧化升级转型能够实现全区域公共厕所管理的横向打通和纵…...
leetcode热题100.爬楼梯(从二进制到快速幂)
Problem: 70. 爬楼梯 文章目录 题目思路Code复杂度 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方…...
使用Docker定时备份数据
文章目录 一、Docker镜像制作二、MySQL数据备份三、Minio数据备份四、数据跨服务器传输五、Nginx日志分割六、Docker启动七、Docker备份日志 一、Docker镜像制作 镜像制作目录 mc下载地址 - rsyncd.conf # https://download.samba.org/pub/rsync/rsyncd.conf.5port 873 uid …...
conda搭建与管理python环境
conda搭建与管理python环境.md Anaconda下载地址Miniconda下载地址Linux下安装1.执行安装2.查看可安装的python版本3.创建环境4.激活环境5.安装python的工具包5.退出环境6.删除指定的环境7.设置默认的环境 Window下安装1.执行安装2.配置环境变量3.检查是否安装成功4.通过conda配…...
获取当前的年、月、日、时、分、秒,并将这些信息用作保存 Excel 文件的前缀
要获取当前的年、月、日、时、分、秒,并将这些信息用作保存 Excel 文件的前缀,你可以使用 Python 的 datetime 模块来获取当前时间,并格式化时间字符串,然后使用 pandas 库将数据保存为 Excel 文件。示例代码: from d…...
Gitlab全量迁移
Gitlab全量迁移 一、背景1.前提条件 一、背景 公司研发使用的Gitlab由于服务器下架需要迁移到新的Gitlab服务器上。Gitlab官方推荐了先备份然后再恢复的方法。个人采用官方的另外一种方法,就写这篇文章给需要的小伙伴参考。 源Gitlab: http://old.mygitlab.com #地…...
Golang ProtoBuf 初学者完整教程:语法
一、编码规范推荐 1、文件名使用小写下划线的命名风格,例如 lower_snake_case.proto 2、使用 2 个空格缩进 3、包名应该和目录结构对应 4、消息名使用首字母大写驼峰风格(CamelCase),例如message StudentRequest { ... } 5、字段名使用小写下划线的风格…...
使用.cc域名的优势
域名注册越来越难了,很多人选择结尾加123、56、365等等数字,总感觉怪怪的。那么能不能选择其他后缀的域名呢?我感觉可以,大部分用户都不会去看域名,只有做技术的会去关注。 使用.cc域名的优势 很多好域名,…...
存储器管理单元MMU概述
在ARM系统中,存储器管理单元MMU主要完成以下工作: ● 虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。页…...
了解监控易(25):网络拓扑管理,可视化监控网络,快速定位问题
在复杂的网络环境中,快速准确地定位问题、确保网络的稳定运行是至关重要的。监控易的网络拓扑管理功能,正是为了解决这一问题而设计的。该功能通过可视化监控网络,帮助用户迅速把握网络整体状况,快速定位并解决问题。 监控易的网络…...
C#学习笔记10:winform上位机与西门子PLC网口通信_中篇_winform的窗口操作设计、日志的添加使用
今日继续我的C#winform上位机学习之路 这系列笔记的目标是尝试编写一个能够与西门子PLC进行以太网口通信的上位机软件。 文章提供完整代码解释、设计点解释、测试效果图、完整工程下载 本章主要学习:Winform多个窗体的一些操作 、无边框窗体的创建、Combox组件插…...
第14章 大数据与数据科学知识点梳理
第14章 大数据与数据科学知识点梳理(附带页码) ◼ 原则:组织应仔细管理与大数据源相关的元数据,以便对数据文件及其来源和价值进行准确的清单管理。P386 ◼ 大数据:数据量大(Volume)、数据更新…...
FHE全同态加密简介
1. 何为FHE? FHE (Fully homomorphic encryption): 是一种隐私技术,支持直接对密文进行计算,而无需对密文先解密再计算。即,任何第三方或云厂商,都可对敏感信息的密文进行处理,而无需访问密文内…...
网站网站建设网页设计/太原搜索引擎优化
点击蓝色“java版web项目”关注我哟加个“星标”,优质文章,第一时间送达本文来源:https://dwz.cn/M1NXgypa上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家System.currentTimeMillis()是极其常用的基础Java API&#x…...
一定seo自己网站吗/域名注册
重心放在大目标上面,长远目标,不要为了短期的,眼前的利益所诱惑。 同时要将功能的学习放在重点,比如字符处理。转载于:https://www.cnblogs.com/daishuguang/archive/2013/05/05/3061552.html...
企业网站的形式有哪些/互联网广告代理
前言:为啥要用无人值守安装系统?很简单的答案!就两个!一个是方便日常工作,另一个就是可以用来装逼!常规装系统的办法有哪些?光盘安装系统>一个服务器DVD内置光驱百千块,百台服务器…...
做网站还需要买空间吗/网站服务器ip查询
转载自:http://blog.csdn.net/warmyellow/article/details/5454943 一. LDA算法概述: 线性判别式分析(LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别的经典算法,它是在1996年由B…...
株洲网络/北京seo网站设计
一个事务中有多个对数据库操作的点 一个点完成了 事务没有结束 在数据库中就差不到这个变化 mysql的默认隔离级别 可重复读 也就是必须最起码读到已经提交了的数据 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;这行代码 将当前的会话的隔离级别设置为 读未提交…...
网络维护好学吗/网站页面优化方案
GotW #04 Class Mechanics 著者:Herb Sutter 翻译:kingofark [声明]:本文内容取自www.gotw.ca网站上的Guru of the Week栏目,其著作权归原著者本人所有。译者kingofark在未经原著者本人同意的情况下翻译本文。本翻译内容仅供…...