1 应用场景

场景:在实际工作中,可能某个 Worker 节点需要维护,迁移,我们需要平滑的停止、启动该节点,应尽量减少启停中对集群、业务造成的影响

注意:剔除 Worker 节点操作中,该 Worker 节点上的工作负载(Pod)将被驱逐到其他节点上,请确保集群资源充足

2 操作步骤

2.1 停止 Worker 节点调度

# 查看信息
root@sh-gpu091:~# kubectl get node
NAME                 STATUS     ROLES   AGE    VERSION
172.19.13.31         Ready      node    403d   v1.14.1
sh-cpu032.aibee.cn   Ready      node    403d   v1.14.1
sh-cpu033.aibee.cn   Ready      node    403d   v1.14.1
sh-gpu091.aibee.cn   Ready      node    403d   v1.14.1
sh-gpu101.aibee.cn   Ready      node    403d   v1.14.1
# 停止 Worker 节点调度
root@sh-gpu091:~# kubectl cordon sh-gpu101.aibee.cn
node/sh-gpu101.aibee.cn cordoned

查看节点状态

root@sh-gpu091:~# kubectl get node
NAME                 STATUS                     ROLES   AGE    VERSION
172.19.13.31         Ready                      node    403d   v1.14.1
sh-cpu032.aibee.cn   Ready                      node    403d   v1.14.1
sh-cpu033.aibee.cn   Ready                      node    403d   v1.14.1
sh-gpu091.aibee.cn   Ready                      node    403d   v1.14.1
sh-gpu101.aibee.cn   Ready,SchedulingDisabled   node    403d   v1.14.1

2.2 驱逐 Worker 节点上的工作负载

# --ignore-daemonsets 驱逐 pod 时忽略 daemonset
# --delete-local-data 驱逐 pod 时删除 pod 的临时数据,该参数不会删除持久化数据
root@sh-gpu091:~# kubectl drain sh-gpu101.aibee.cn --delete-local-data --ignore-daemonsets --force
node/sh-gpu101.aibee.cn already cordoned
WARNING: ignoring DaemonSet-managed Pods: cattle-system/cattle-node-agent-8wcvs, kube-system/kube-flannel-ds-kqzhc, kube-system/nvidia-device-plugin-daemonset-rr2lf, monitoring/prometheus-node-exporter-xtbxp
evicting pod "model-server-0"
evicting pod "singleview-proxy-client-pbdownloader-0"
evicting pod "singleview-proxy-service-0"
pod/singleview-proxy-client-pbdownloader-0 evicted
pod/singleview-proxy-service-0 evicted
pod/model-server-0 evicted
node/sh-gpu101.aibee.cn evicted

2.3 停止 Docker、Kubelet 等服务

systemctl stop kubelet
systemctl stop docker

查看节点上是否还有业务 pod

kubectl get pod -A -o wide |grep sh-gpu101.aibee.cn

如果不需要恢复了,可以删除节点并确认节点信息

root@sh-gpu091:~# kubectl delete node sh-gpu101.aibee.cn
node "sh-gpu101.aibee.cn" deleted
root@sh-gpu091:~# kubectl get node
NAME                 STATUS     ROLES   AGE    VERSION
172.19.13.31         Ready      node    403d   v1.14.1
sh-cpu032.aibee.cn   Ready      node    403d   v1.14.1
sh-cpu033.aibee.cn   Ready      node    403d   v1.14.1
sh-gpu091.aibee.cn   Ready      node    403d   v1.14.1
root@sh-gpu091:~#

2.4 恢复 Worker 节点

systemctl start docker
systemctl status docker
systemctl start kubelet
systemctl status kubelet

2.5 允许 Worker 节点调度

# 取消不可调度
kubectl uncordon sh-gpu101.aibee.cn

K8s集群重启与恢复-Node节点启停相关推荐

  1. java停启was集群_shell脚本实现weblogic 节点启停,应用部署

    部署应用: java -cp /app/weblogic/wlserver_10.3/server/lib/weblogic.jar weblogic.Deployer -adminurl t3:// ...

  2. Kubeadm安装高可用的K8S集群--多master单node

    Kubeadm安装高可用的K8S集群–多master单node master1 IP 192.168.1.180/24 OS Centos7.6 master2 IP 192.168.1.181/24 ...

  3. 使用sealos安装K8S集群时,需确保节点的swap是关闭的

    使用sealos安装K8S集群时,需确保节点的swap是关闭的,否则会安装失败

  4. k8s高可用集群_搭建高可用集群(部署master2和node节点)---K8S_Google工作笔记0058

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后上一节我们把master1节点,搭建完成了,接下来我们把下面的 master2节点以及node ...

  5. sgrdb mysql_GreatDB数据库在HA架构的单调度集群模式下如何手动后台启停?

    (1)启动GreatDB数据库 启动时需要注意先启动后端数据库,待所有数据库启动并验证可以登录后,再启动集群. 启动数据库 启动所有服务器上的mysql实例,启动之前 ps -ef|grep mysq ...

  6. k8s:kubeadm搭建k8s集群,加入新master节点报错

    加入新的master节点 [root@k8s-master02 ~]#kubeadm join 172.20.1.236:16443 --token 7t2weq.bjbawausm0jaxury \ ...

  7. 搭建K8S集群之node节点部署

    在上一篇文章中,我们完成了K8S系列之K8S集群之Master节点部署,在这篇文章中,我们将开始部署Node节点相关的组件.在node节点上,需要部署kubelet和kube-proxy两个K8S组件 ...

  8. k8s集群重新将master节点加入集群

    文章目录 问题背景 解决过程 基础环境恢复 恢复etcd集群 恢复docker 恢复k8s集群 总结 问题背景 由三台master节点组成的k8s集群,由于其中一台master节点启动文件异常,将机器 ...

  9. 【K8S】基于单Master节点安装K8S集群

    写在前面 最近在研究K8S,今天就输出部分研究成果吧,后续也会持续更新. 集群规划 IP 主机名 节点 操作系统版本 192.168.175.101 binghe101 Master CentOS 8 ...

最新文章

  1. 机器学习实战笔记(Python实现)-01-机器学习实战
  2. HDOJ 1056 HangOver
  3. rabbitmq 3.7.0+erlang 20.1 安装
  4. mysql 半径,MySQL基于距离半径的搜索和区域搜索POI实践
  5. P3291-[SCOI2016]妖怪【凸壳】
  6. pytorch的backward参数
  7. 做程序员10年了,复制粘贴是我最牛的技能,直到我看到了这几个公众号
  8. 190525每日一句
  9. 【语音处理】基于matlab GUI汉宁窗FIR陷波滤波器语音信号加噪去噪【含Matlab源码 1711期】
  10. .net快速开发平台,learun敏捷开发框架
  11. 开wifi微信定位服务器,企业微信wifi定位
  12. leetcode电话号码java_【LeetCode(Java) - 379】电话目录管理系统
  13. SpringCloud蓝绿发布
  14. JAVA数独解题(四):数对法
  15. python 安卓王者荣耀刷金币
  16. 基于android的快递寄件平台
  17. status_breakpoint谷歌浏览器如何解决?
  18. 解决网页文字不能复制的方法
  19. 3DMAX如何建模手
  20. java安装 错误1704_java - 从Eclipse内部启动Tomcat Mongrel插件时发生致命错误 - 堆栈内存溢出...

热门文章

  1. centos-系统删除多余网卡的方法
  2. dicom 胶片排版打印
  3. win7 没有信息服务器地址,win7电脑提示无法解析服务器dns地址,该如何解决?
  4. linux安装php并测试,PHPunit安装及使用
  5. 手机UI设计将“独当一面”?
  6. WPS外部复制过来的英文和数字间隙过大问题解决方法
  7. 2014年4月份第3周51Aspx源码发布详情
  8. 疫情下,京津复工通勤指南
  9. python爬虫初探,爬取我爱牙齿网,存取内容
  10. 09 html制作简历模板