11.5.k8s中pod的调度-cordon,drain,delete

embedded/2024/10/18 22:36:47/

目录

一、概念

二、使用

1.cordon 停止调度

1.1.停止调度

1.2.解除恢复

2.drain 驱逐节点

2.1.驱逐节点

2.2.参数介绍

2.3.解除恢复

3.delete 删除节点


一、概念

cordon节点,drain驱逐节点,delete 节点,在对k8s集群节点执行维护(例如内核升级、硬件维护等)时候会用到。后期创建的pod都不会被调度到该节点上,但操作的暴力程度不一样。改变的是节点的STATUS

二、使用

1.cordon 停止调度

1.1.停止调度

影响最小,node的STATUS调为SchedulingDisabled,新创建pod,不会被调度到该节点,节点原有pod不受影响,仍正常对外提供服务。

# 停止调度节点
[root@k8s1 k8s-yaml]# kubectl cordon k8s2
node/k8s2 cordoned[root@k8s1 k8s-yaml]# kubectl get node -owide
NAME   STATUS                     ROLES                  AGE   VERSION    INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION           CONTAINER-RUNTIME
k8s1   Ready                      control-plane,master   12d   v1.23.17   192.168.11.11   <none>        CentOS Linux 7 (Core)   3.10.0-1160.el7.x86_64   docker://19.3.13
k8s2   Ready,SchedulingDisabled   <none>                 12d   v1.23.17   192.168.11.12   <none>        CentOS Linux 7 (Core)   3.10.0-1160.el7.x86_64   docker://19.3.13

1.2.解除恢复

# 可使用 uncordon  恢复
[root@k8s1 k8s-yaml]# kubectl uncordon k8s2
node/k8s2 uncordoned

2.drain 驱逐节点

首先驱逐node上的pod,在其他节点重新创建,然后将节点调为SchedulingDisabled。

2.1.驱逐节点

kubectl drain k8s2 --ignore-daemonsets

2.2.参数介绍

--ignore-daemonsets #daemonset资源不能被驱逐,需要排除,加这个选项参数排除;
--delete-emptydir-data #如果无法驱逐成功,再加这个参数;

kubectl drain k8s2 --ignore-daemonsets --delete-emptydir-datakubectl get pods -o wide -A | grep k8s2

驱逐pod后,我们会发现,k8s2还存在两个pod; 一个是flannel组件还有一个是kube-proxy代理pod;我们不用管这两个没有被驱逐的pod;

2.3.解除恢复

也是使用kubectl uncordon k8s2恢复

# 恢复
[root@k8s1 k8s-yaml]# kubectl uncordon k8s2
node/k8s2 uncordoned

3.delete 删除节点

最暴力的一个,首先驱逐node上的pod,在其他节点重新创建,然后,从master节点删除该node,master失去对其控制,如要恢复调度,需进入node节点,重启kubelet服务

kubectl delete node k8s2

关于节点扩缩容的具体操作流程可关注后面的文章
 


http://www.ppmy.cn/embedded/52542.html

相关文章

【杂记-浅谈OSPF协议中的RouterDeadInterval】

OSPF协议中的RouterDeadInterval 一、RouterDeadInterval概述二、设置RouterDeadInterval三、RouterDeadInterval的重要性 一、RouterDeadInterval概述 RouterDeadInterval&#xff0c;即路由器死区间隔&#xff0c;它涉及到路由器如何在广播网络上发现和维护邻居关系。Router…

LabVIEW电动汽车核心部件检测系统

LabVIEW开发的电动汽车核心部件检测系统&#xff0c;通过硬件接入板和数据采集卡实现信号采集和分析。系统具备智能诊断、模块化设计和用户友好的特点&#xff0c;能够快速、精确地定位故障&#xff0c;提高电动汽车的维护效率和可靠性&#xff0c;支持新能源汽车市场的快速发展…

什么悬挂指针,如何避免(C/C++)

悬挂指针&#xff08;Dangling Pointer&#xff09; 悬挂指针是指向已经被释放或者不再存在的内存区域的指针。当程序尝试使用这样的指针访问或修改已释放的内存时&#xff0c;会导致未定义行为&#xff0c;通常是程序崩溃或数据损坏。 示例代码&#xff08;C&#xff09; #…

03 Shell编程之循环语句与函数

目录 3.1 for 循环语句 3.1.1 for 语句的结构 3.1.2 for 语句应用示例 1. 根据姓名列表批量添加用户 2. 根据IP地址列表检查主机状态 3.2 使用while循环语句 3.2.1 while语句的结构 3.2.2 while语句应用示例 1. 批量添加规律编号的用户 2. 猜价格游戏 3.3 until 循环语句 3.…

数据平台发展史-从数据仓库数据湖到数据湖仓

做数据的同学经常听到一些数据相关的术语&#xff0c;常见的包括数据仓库&#xff0c;逻辑数据仓库&#xff0c;数据湖&#xff0c;数据湖仓/湖仓一体&#xff0c;数据网格 data mesh,数据编织 data fabric等. 笔者在这里回顾了下数据平台的发展史&#xff0c;也介绍和对比了下…

skywalking segment索引占用elasticsearch大量磁盘空间

现象&#xff1a; skywalking segment索引占用elasticsearch大量磁盘空间 原因 recordDataTTL 是SkyWalking的一个配置项&#xff0c;用于设置记录数据的存活时间&#xff08;TTL, Time To Live&#xff09;。SkyWalking是一个开源的应用性能监控系统&#xff0c;用于监控分…

Docker 容器相关的常见面试问题及答案

Docker 容器相关的常见面试问题及答案 问题 1&#xff1a;什么是 Docker&#xff1f; 答案&#xff1a;Docker 是一个开源的平台&#xff0c;允许开发者自动化地部署应用程序在容器中。容器是轻量级、独立且打包的应用服务&#xff0c;可以在任何环境中运行&#xff0c;确保一…

Pyecharts入门

数据可视化 Pyecharts简介 Apache ECharts 是一个由百度开源的数据可视化&#xff0c;凭借着良好的交互性&#xff0c;精巧的图表设计&#xff0c;得到了众多开发者的认可。而 Python 是一门富有表达力的语言&#xff0c;很适合用于数据处理。当数据分析遇上数据可视化时&#…