深圳专业软件网站建设,iis7发布php网站,wordpress 4.6 中文,中石油第六建设公司网站文章目录[toc]事出因果个人思路准备实践当前 worker 节点信息将节点标记为不可调度驱逐节点 pod将 worker 节点从 k8s 集群踢出下线 worker 节点相关组件事出因果 因为之前写了一篇 二进制 k8s 集群下线 master 组件流程分析和实践#xff0c;所以索性再写一个 worker 节点的缩…文章目录[toc]事出因果个人思路准备实践当前 worker 节点信息将节点标记为不可调度驱逐节点 pod将 worker 节点从 k8s 集群踢出下线 worker 节点相关组件
事出因果 因为之前写了一篇 二进制 k8s 集群下线 master 组件流程分析和实践所以索性再写一个 worker 节点的缩容 worker 节点的缩容在置换机器的时候比较适用又或者称节点迁移 个人思路 worker 节点的缩容其实比 master 节点的缩容会方便很多 将需要下线的 worker 节点标记为不可调度将需要下线的 worker 节点上的 pod 进行驱逐 如果有 label 控制的需要提前在其他节点上打上相应的 label保证 pod 可以在其他节点上运行 确认 pod 完全驱逐后使用 kubectl 命令删除节点下线 worker 节点相关的组件服务根据情况是否保留相关的 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 节点相关组件 下线 kubelet 和 kube-proxy 服务 systemctl disable kubelet kube-proxy --now下线容器运行时 [注我这里使用的是 containerd大家以自己实际的为准] systemctl disable containerd --now
systemctl disable docker --now到此关于 worker 节点缩容的实践就结束了