当前位置: 首页 > news >正文

二进制 k8s 集群下线 worker 组件流程分析和实践

文章目录

    • @[toc]
    • 事出因果
    • 个人思路
    • 准备实践
      • 当前 worker 节点信息
      • 将节点标记为不可调度
      • 驱逐节点 pod
      • 将 worker 节点从 k8s 集群踢出
      • 下线 worker 节点相关组件

事出因果

因为之前写了一篇 二进制 k8s 集群下线 master 组件流程分析和实践,所以索性再写一个 worker 节点的缩容

worker 节点的缩容,在置换机器的时候比较适用(又或者称节点迁移)

个人思路

worker 节点的缩容,其实比 master 节点的缩容会方便很多

  1. 将需要下线的 worker 节点标记为不可调度
  2. 将需要下线的 worker 节点上的 pod 进行驱逐
    • 如果有 label 控制的,需要提前在其他节点上打上相应的 label,保证 pod 可以在其他节点上运行
  3. 确认 pod 完全驱逐后,使用 kubectl 命令删除节点
  4. 下线 worker 节点相关的组件服务
  5. 根据情况是否保留相关的 pod 数据

准备实践

当前 worker 节点信息

节点 ip是否下线
172.72.0.96下线
172.72.0.97下线
172.72.0.98不下线
172.72.0.99不下线

将节点标记为不可调度

注意:我这里是因为这两个节点之前就处于不可调度的状态,所以我的步骤里面是没有:打 label 的操作,只有驱逐 pod 的操作

如果节点有跑 pod,切记要先确认相关的 label,避免造成业务不可访问

kubectl cordon 172.72.0.96
kubectl cordon 172.72.0.97

标记为不可调度后,查看节点信息会出现 SchedulingDisabled 的字样

NAME          STATUS                     ROLES    AGE   VERSION
172.72.0.95   Ready,SchedulingDisabled   <none>   11d   v1.19.7
172.72.0.96   Ready,SchedulingDisabled   <none>   11d   v1.19.7
172.72.0.97   Ready,SchedulingDisabled   <none>   11d   v1.19.7
172.72.0.98   Ready                      <none>   16d   v1.19.7
172.72.0.99   Ready                      <none>   16d   v1.19.7

驱逐节点 pod

这里我会保留 daemonset 类型的 pod

kubectl drain 172.72.0.96 --ignore-daemonsets
kubectl drain 172.72.0.97 --ignore-daemonsets

将 worker 节点从 k8s 集群踢出

确保节点没有存在除 daemonset 类型的 pod 的情况下,再做踢出节点的操作

kubectl get pod -A -o wide | egrep '172.72.0.96|172.72.0.97'

我这里剩下的 pod 都是属于 daemonset 类型的了

ingress-nginx          nginx-ingress-controller-5b8hw               1/1     Running   0          11d     172.72.0.96   172.72.0.96   <none>           <none>
ingress-nginx          nginx-ingress-controller-5k52q               1/1     Running   0          11d     172.72.0.97   172.72.0.97   <none>           <none>
kube-system            kube-flannel-ds-8hflj                        1/1     Running   0          11d     172.72.0.96   172.72.0.96   <none>           <none>
kube-system            kube-flannel-ds-lwg6c                        1/1     Running   0          11d     172.72.0.97   172.72.0.97   <none>           <none>
monitor                node-exporter-lddpd                          1/1     Running   0          7d6h    172.72.0.97   172.72.0.97   <none>           <none>
monitor                node-exporter-rwnht                          1/1     Running   0          67m     172.72.0.96   172.72.0.96   <none>           <none>

将需要下线的节点踢出集群,注:别踢错集群了,要再三确认之后再踢出集群

kubectl delete node 172.72.0.96
kubectl delete node 172.72.0.97

再次使用 kubectl get node 命令后,就可以看到,那两个节点已经看不到了

下线 worker 节点相关组件

下线 kubeletkube-proxy 服务

systemctl disable kubelet kube-proxy --now

下线容器运行时 [注:我这里使用的是 containerd,大家以自己实际的为准]

systemctl disable containerd --now
systemctl disable docker --now

到此,关于 worker 节点缩容的实践就结束了

http://www.lryc.cn/news/5711.html

相关文章:

  • Bean的六种作用域
  • Http发展历史
  • 高级Java程序员必备的技术点,你会了吗?
  • 【暴力量化】查找最优均线
  • Java读取mysql导入的文件时中文字段出现�??的乱码如何解决
  • k8s核心概念—Pod Controller Service介绍——20230213
  • Tensorflow的数学基础
  • IT培训就是“包就业”吗?内行人这么看
  • 【算法】【数组与矩阵模块】顺时针旋转打印矩阵
  • Java中的锁概述
  • 微电影行业痛点解决方案
  • 使用Spring框架的好处是什么
  • 【表格单元格可编辑】vue-elementul简单实现table表格点击单元格可编辑,点击单元格变成弹框修改数据
  • vue3.0 响应式数据
  • uni-app ①
  • 20个 Git 命令玩转版本控制
  • SAP NetWeaver版本和SAP Kernel版本的确定
  • 面试23K字节测试开发岗被血虐,到底具有怎样的技术才算高级水平?
  • 智云通CRM:买对了吗——大客户采购的方案实施
  • 前后端开发过程中的跨域问题总结
  • 爬虫:栖落的电影网站,利用requests和re模块
  • 使用burpsuite抓包 + sql工具注入 dvwa靶场
  • 树与图中的dfs和bfs—— AcWing 846. 树的重心 AcWing 847. 图中点的层次
  • 从零开始学数据分析之数据分析概述
  • 十五载厚积薄发,电信级分布式数据库是这样炼成
  • Centos调整分区存储大小
  • 华为OD机试真题JAVA实现【单词接龙】真题+解题思路+代码(20222023)
  • Mapbox Style 规范
  • Java开发学习(五十)----MyBatisPlus快速开发之代码生成器解析
  • HTML学习