K8S 集群节点缩容

环境说明:

|-------------|----------------|--------|--------|---------|----------|
| 主机名 | IP地址 | CPU/内存 | 角色 | K8S版本 | Docker版本 |
| k8s231 | 192.168.99.231 | 2C4G | master | 1.23.17 | 20.10.24 |
| k8s232 | 192.168.99.232 | 2C4G | woker | 1.23.17 | 20.10.24 |
| k8s233(需下线) | 192.168.99.233 | 2C4G | woker | 1.23.17 | 20.10.24 |

1. K8S 集群节点缩容

当集群中有闲置或者node因为硬件故障机其他原因需要下线时就需要对集群进行缩容

1.1 查看现有节点信息

bash 复制代码
kubectl get nodes

如图:

可以看到当前所有部署在k8s233节点上面的Pod

1.2 驱逐 Pod 并打 SchedulingDisable 标签,但 ds 资源创建的Pod不会驱逐

bash 复制代码
kubectl drain k8s233 --ignore-daemonsets --delete-emptydir-data

如图:

之前k8s233节点上的资源被驱逐到其他节点上了

如图:

ds资源并没有被驱逐

1.3 查看节点被标记为禁用调度状态

bash 复制代码
#标记当前节点不可调度Pod,那么master组件的scheduler 就不会调度到Pod当前节点
[root@k8s231 /app/manifests/sts]# kubectl get nodes

1.4给需要下线的节点打污点,驱逐已经调度到该节点的所有Pod

bash 复制代码
1.#打污点,不可调度且驱逐
kubectl taint node k8s233 school=bihuang:NoExecute


2.#查看节点污点
kubectl describe nodes | grep Taints -A 2

注意:

kube-proxy组件貌似无法被驱逐,因为配置无视污点的属性,所以打任何污点都无效!

1.5 下线节点重置

bash 复制代码
[root@k8s233 ~]# kubeadm reset --f

[root@k8s233 ~]# rm -rf /etc/cni/net.d && iptables -F && iptables-save 

[root@k8s233 ~]# systemctl disable --now kubelet

1.6 删除节点

bash 复制代码
[root@k8s231 /app/manifests/sts]# kubectl delete nodes k8s233

1.7 下线节点

节点关机

断电

修机器

随便操作即可

相关推荐
深紫色的三北六号3 小时前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash7 小时前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI17 小时前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行1 天前
Linux和window共享文件夹
linux
木心月转码ing2 天前
WSL+Cpp开发环境配置
linux
蝎子莱莱爱打怪3 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀3 天前
Docker部署Nacos
docker·容器
缓解AI焦虑3 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器
崔小汤呀3 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
何中应3 天前
vi编辑器使用
linux·后端·操作系统