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

2024-06-17 23:28

本文主要是介绍11.5.k8s中pod的调度-cordon,drain,delete,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、概念

二、使用

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

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

这篇关于11.5.k8s中pod的调度-cordon,drain,delete的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070699

相关文章

[分布式网络通讯框架]----Zookeeper客户端基本操作----ls、get、create、set、delete

Zookeeper数据结构 zk客户端常用命令 进入客户端 在bin目录下输入./zkCli.sh 查看根目录下数据ls / 注意:要查看哪一个节点,必须把路径写全 查看节点数据信息 get /第一行代码数据,没有的话表示没有数据 创建节点create /sl 20 /sl为节点的路径,20为节点的数据 注意,不能跨越创建,也就是说,创建sl2的时候,必须确保sl

OSG学习:LOD、数据分页、动态调度

LOD(level of detail):是指根据物体模型的结点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。在OSG的场景结点组织结构中,专门提供了场景结点osg::LOD来表达不同的细节层次模型。其中,osg::LOD结点作为父节点,每个子节点作为一个细节层次,设置不同的视域,在不同的视域下显示相应的子节点。 数据分页:在城市

远程桌面中使用CTRL+ALT+DELETE注意事项

今天通过远程桌面访问服务器,因为服务器上安装在虚拟机上的SVN服务器关机了。重启之后需要按CTRL+ALT+DELETE三键输入密码。但是怎么按也没反应,总是弹出本机的指令。 后来一查,原来Ctrl+Alt+Del 改键了,要按Ctrl+alt+End组合键。

云原生容器技术入门:Docker、K8s技术的基本原理和用途

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、容器技术概述 1、什么是容器技术 2、容器技术的历史与发展 3、容器技术与虚拟机的比较 4、容器技术在云原生中的作用 二、Docker基础 1、Docker简介 2、Docker架构 3、Docker与工作原理 三、Kubernetes(k8s)基础 1、

CloudStack基本概念-Zone,Pod,Cluster,Host

ZonePodClusterHost Zone Zone(资源域)是CloudStack部署中第二大的组织单元。Zone一般对应一个数据中心,虽然一个数据中心也可以有多个Zone。 把基础设施组织进Zone的一个好处就是可以提供物理隔离和冗余。 例如每个Zone可以有自己的电源供应和网络线路,并且zone之间可以远远地隔离开(虽然不是必须的) 一个zone包括:

client-go删除job同时删除job关联的pod

问题描述 client-go使用以下方式删除job时,并不会把其关联的pod删除,从而导致这些pod成为了孤儿(orphan): err := clientSet.BatchV1().Jobs(namespace).Delete(name, &metav1.DeleteOptions{}) 在删除job的时候将job关联的pod也删除的方法: propagationPolicy := m

k8s集群master故障恢复笔记

剔除故障节点 kubectl drain master故障节点 kubectl delete node master故障节点 kubeadm reset rm -rf /etc/kubernetes/manifests mkdir -p /etc/kubernetes/pki/etcd/ 从master其他节点拷 scp /etc/kubernetes/pki/ca.crt ca.k

【K8S运维】整理常见使用命令

*特别提醒: 文件复制类的命令,执行命令等需要谨慎确定命令执行后的效果,否则一旦出错就不可逆!!! 命令概览 序号使用场景命令格式使用样例命令使用说明1查询集群节点有多少kubectl get nodes2查询集群运行哪些podkubectl get pods -o wide -A3查询指定pod名称的pod信息kubeclt get pods -o wide -A|grep <具体pod对象

【FreeRTOS】任务管理与调度

文章目录 调度:总结 调度: 相同优先级的任务轮流运行最高优先级的任务先运行 可以得出结论如下: a 高优先级的任务在运行,未执行完,更低优先级的任务无法运行b 一旦高优先级任务就绪,它会马上运行(假设厨房着火了,会马上去灭火)c 如果最高优先级的任务有多个,他们轮流运行 他们都是使用链表进行管理 打开CubeMX,最高优先级56 56个List, Rad

Kubernetes排错(七)-Pod 状态一直 ContainerCreating

查看 Pod 事件 $ kubectl describe pod apigateway-6dc48bf8b6-l8xrw -n cn-staging 异常原因 1)no space left on device ...Events:Type Reason Age From Me