惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
MongoDB | Blog
MongoDB | Blog
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
量子位
美团技术团队
大猫的无限游戏
大猫的无限游戏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
博客园 - 司徒正美
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
C
Check Point Blog
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
有赞技术团队
有赞技术团队
月光博客
月光博客

博客园 - 尹正杰

Categraf使用指南 window系统部署Claude Code实战 N9E集群部署 Ubuntu 24.04 LTS部署Codex实战 aiops运维平台从0到1部署实战 aiops平台环境部署 TKE集群LoadBalancer映射案例 k8s集群为每个节点分配不通的ippool实战 ansible剧本实现一键升级K8S集群的NVIDIA GPU驱动 vmagent采集etcd数据并写入victoriametrics集群 VictoriaMetrics集群部署实战 Squid正向代理实战 kubespray生产故障案例之kubelet启动参数案例 filebeat指定名称空间采集pod数据 Calico自定义Ipool实战 ansible剧本实现kibana的部署和卸载 ansible剧本应用案例集合2 ansible剧本实现磁盘格式化 Ansible急速入门实战篇 ansible快速入门篇 k8s集群管理 kubesray实战 kubespray实战案例 kubespray快速部署k8s集群实战 Kubeasz使用吐槽博客专题 Kubeasz基于ezctl实现etcd集群的管理实战 Kubeasz基于ezctl实现k8s集群一键升级 Calico启用纯BGP模式+RR实战案例 Calico 底层原理及IPIP(依赖BGP协议))和vxlan(不依赖BGP)工作模式切换 kubeasz基于ezctl实现k8s集群的扩容和缩容
kubespray管理k8s的worker集群扩缩容
尹正杰 · 2026-06-08 · via 博客园 - 尹正杰

                                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.缩容K8S集群

1.查看现有集群环境

[root@master231 ~]# kubectl get nodes -o wide
NAME        STATUS   ROLES           AGE   VERSION    INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
master231   Ready    control-plane   15h   v1.33.10   10.0.0.231    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
master232   Ready    control-plane   15h   v1.33.10   10.0.0.232    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
master233   Ready    control-plane   15h   v1.33.10   10.0.0.233    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
worker66    Ready    <none>          15h   v1.33.10   10.0.0.66     <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
worker77    Ready    <none>          15h   v1.33.10   10.0.0.77     <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
[root@master231 ~]# 

2.驱逐要下线的worker节点

  1.驱逐要下线的worker节点
[root@master231 ~]# kubectl drain worker66 --ignore-daemonsets --delete-emptydir-data 
node/worker66 cordoned
Warning: ignoring DaemonSet-managed Pods: kube-system/calico-node-wdrkf, kube-system/kube-proxy-2b7xl, kube-system/nodelocaldns-7w8ns
evicting pod kube-system/coredns-594cbfb5fd-9gdmp
pod/coredns-594cbfb5fd-9gdmp evicted
node/worker66 drained
[root@master231 ~]# 
[root@master231 ~]# 
[root@master231 ~]# kubectl drain worker77 --ignore-daemonsets --delete-emptydir-data 
node/worker77 cordoned
Warning: ignoring DaemonSet-managed Pods: kube-system/calico-node-67lgs, kube-system/kube-proxy-wl2ht, kube-system/nodelocaldns-jxq2d
evicting pod kube-system/dns-autoscaler-8558dbc749-28z2g
evicting pod kube-system/calico-kube-controllers-6b48c55b44-b5wr7
evicting pod kube-system/coredns-594cbfb5fd-klpr9
pod/dns-autoscaler-8558dbc749-28z2g evicted
pod/calico-kube-controllers-6b48c55b44-b5wr7 evicted
pod/coredns-594cbfb5fd-klpr9 evicted
node/worker77 drained
[root@master231 ~]# 


  2.再次查看节点列表
[root@master231 ~]# kubectl get nodes -o wide
NAME        STATUS                     ROLES           AGE   VERSION    INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
master231   Ready                      control-plane   16h   v1.33.10   10.0.0.231    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
master232   Ready                      control-plane   16h   v1.33.10   10.0.0.232    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
master233   Ready                      control-plane   16h   v1.33.10   10.0.0.233    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
worker66    Ready,SchedulingDisabled   <none>          16h   v1.33.10   10.0.0.66     <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
worker77    Ready,SchedulingDisabled   <none>          16h   v1.33.10   10.0.0.77     <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
[root@master231 ~]# 
[root@master231 ~]# 

3.删除worker节点

参考链接:
  https://kubespray.io/#/docs/getting_started/getting-started?id=remove-nodes



  1.删除指定的多个节点
(venv) [root@ansible99 kubespray]# ansible-playbook -i inventory/yinzhengjie-k8s/inventory.ini remove-node.yml -b -v --extra-vars "node=worker66,worker77"


  2.查看删除后的效果【删除过程比较耗时间,删除过程中并没有出现停机的情况】
[root@master232 ~]# kubectl get nodes -o wide
NAME        STATUS   ROLES           AGE   VERSION    INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
master231   Ready    control-plane   18h   v1.33.10   10.0.0.231    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
master232   Ready    control-plane   18h   v1.33.10   10.0.0.232    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
master233   Ready    control-plane   18h   v1.33.10   10.0.0.233    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.6
[root@master232 ~]# 

二.扩容K8S集群

1.添加节点

参考链接:
  https://kubespray.io/#/docs/getting_started/getting-started?id=adding-nodes

(venv) [root@ansible99 kubespray]# ansible-playbook -i inventory/yinzhengjie-k8s/inventory.ini scale.yml -b -v --extra-vars "node=worker66,worker77"

2.