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中控制服务启动顺序的操作方法

    Docker中控制服务启动顺序的操作方法

    Docker是一种开源的应用容器引擎,允许开发者将应用及其依赖打包进容器,实现快速、一致的部署,Docker三剑客compose、machine和swarm提供了不同层面的服务管理和编排,使得在不同环境中部署应用变得简单高效
    2024-10-10
  • Docker 删除及清理镜像的方法

    Docker 删除及清理镜像的方法

    本文主要介绍了Docker 删除及清理镜像的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Docker开启TLS和CA认证的方法步骤

    Docker开启TLS和CA认证的方法步骤

    本文主要介绍了Docker开启TLS和CA认证的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 详解使用docker 1.12 搭建多主机docker swarm集群

    详解使用docker 1.12 搭建多主机docker swarm集群

    本篇文章主要介绍了使用docker 1.12 搭建多主机docker swarm集群,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 查询Docker镜像DockerFile的方法步骤

    查询Docker镜像DockerFile的方法步骤

    本文主要介绍了查询Docker镜像DockerFile的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 使用docker部署django技术栈项目的方法步骤

    使用docker部署django技术栈项目的方法步骤

    这篇文章主要介绍了使用docker部署django技术栈项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Docker 集成KingBase的详细过程

    Docker 集成KingBase的详细过程

    这篇文章主要介绍了Docker 集成KingBase的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-04-04
  • CentOS 8安装Docker的详细教程

    CentOS 8安装Docker的详细教程

    本文详细讲解了CentOS 8安装Docker的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • 在Docker环境中部署和运行One API的操作方法

    在Docker环境中部署和运行One API的操作方法

    随着技术的发展,API 作为服务连接的桥梁,变得越来越重要,One API 是一种流行的 API 管理平台,能够帮助我们更好地管理、监控和扩展 API 服务,本文给大家介绍了如何在 Docker 环境中部署和运行 One API,需要的朋友可以参考下
    2024-11-11
  • 树莓派3B+安装64位ubuntu系统和docker工具的操作步骤详解

    树莓派3B+安装64位ubuntu系统和docker工具的操作步骤详解

    这篇文章主要介绍了树莓派3B+安装64位ubuntu系统和docker工具,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09

最新评论