K8s集群重启与恢复-Node节点启停方式

 更新时间:2024年08月17日 09:46:50   作者:临江仙我亦是行人  
这篇文章主要介绍了K8s集群重启与恢复-Node节点启停方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker容器启动时初始化Mysql数据库的方法

    Docker容器启动时初始化Mysql数据库的方法

    这篇文章给大家介绍Docker容器启动时初始化Mysql数据库的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2013-11-11
  • Docker 监控平台部署的两种实现步骤

    Docker 监控平台部署的两种实现步骤

    本文主要介绍了Docker 监控平台部署的两种实现步骤,包括cAdvisor、Prometheus和Grafana,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-11-11
  • docker运行nginx绑定配置文件失败原因以及问题解决

    docker运行nginx绑定配置文件失败原因以及问题解决

    最近工作中在使用docker运行nginx的时候遇到了些问题,下面分享给大家,这篇文章主要给大家介绍了关于docker运行nginx绑定配置文件失败原因以及问题解决的相关资料,需要的朋友可以参考下
    2023-02-02
  • 如何使用 docker compose 搭建 fastDFS文件服务器

    如何使用 docker compose 搭建 fastDFS文件服务器

    这篇文章主要介绍了如何使用 docker compose 搭建 fastDFS文件服务器,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • docker-compose安装yml文件配置方式

    docker-compose安装yml文件配置方式

    这篇文章主要介绍了docker-compose安装,yml文件配置,离线安装及在线安装的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Docker不同宿主机网络打通的操作方案

    Docker不同宿主机网络打通的操作方案

    这篇文章主要介绍了Docker不同宿主机网络打通的方案 ,本方式使用docker Swarm集群的方式创建overlay 网络进行打通,需要的朋友可以参考下
    2024-08-08
  • 如何解决docker commit后镜像越来越大问题

    如何解决docker commit后镜像越来越大问题

    解决Docker Commit后镜像变大问题的方法:方法1直接打包容器并导入为镜像;方法2将容器根目录文件压缩后导入为镜像,方法1更优,在其他设备运行时可能出现内存不足错误
    2025-03-03
  • 详解Docker Swarm概念与用法

    详解Docker Swarm概念与用法

    这篇文章主要介绍了Docker Swarm概念与用法,帮助大家更好的理解和使用docker容器,感兴趣的朋友可以了解下
    2020-09-09
  • Docker提示permission denied错误的解决方案

    Docker提示permission denied错误的解决方案

    这篇文章主要给大家介绍了关于Docker提示permission denied错误的解决方案,出现这个问题是因为宿主机的当前运行用户和docker容器里面的运行用户不一致导致访问权限问题,需要的朋友可以参考下
    2023-08-08
  • 用Docker安装Gitlab的方法步骤

    用Docker安装Gitlab的方法步骤

    这篇文章主要介绍了用Docker安装Gitlab的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08

最新评论