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

推荐订阅源

Cloudbric
Cloudbric
有赞技术团队
有赞技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Threat Research - Cisco Blogs
L
LangChain Blog
Simon Willison's Weblog
Simon Willison's Weblog
Project Zero
Project Zero
Latest news
Latest news
S
Schneier on Security
Cisco Talos Blog
Cisco Talos Blog
MyScale Blog
MyScale Blog
C
Check Point Blog
IT之家
IT之家
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CERT Recently Published Vulnerability Notes
Scott Helme
Scott Helme
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
G
Google Developers Blog
T
Tor Project blog
T
Threatpost
D
DataBreaches.Net
博客园 - 【当耐特】
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Troy Hunt's Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
NISL@THU
NISL@THU
P
Privacy & Cybersecurity Law Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cisco Blogs
博客园_首页
S
Securelist
T
The Exploit Database - CXSecurity.com
Last Week in AI
Last Week in AI
量子位
U
Unit 42
Know Your Adversary
Know Your Adversary
Hugging Face - Blog
Hugging Face - Blog
S
Security Affairs
Google Online Security Blog
Google Online Security Blog
Hacker News: Ask HN
Hacker News: Ask HN
Webroot Blog
Webroot Blog
S
SegmentFault 最新的问题
Engineering at Meta
Engineering at Meta
N
News and Events Feed by Topic
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志

博客园 - 尹正杰

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的worker集群扩缩容 kubespray快速部署k8s集群实战 Kubeasz使用吐槽博客专题 Kubeasz基于ezctl实现etcd集群的管理实战 Calico启用纯BGP模式+RR实战案例 Calico 底层原理及IPIP(依赖BGP协议))和vxlan(不依赖BGP)工作模式切换 kubeasz基于ezctl实现k8s集群的扩容和缩容 kubeasz快速部署K8S集群实战 Ubuntu 24.04.04 LTS版本系统优化 Ubuntu Server 24.04.04 LTS部署指南 windows极速部署Openclaw实战篇 K8S的StatefulSet控制器应用案例之MySQL主从同步实战 k8s底层基于不同运行时集成harbor企业级私有仓库实战 二进制K8S集群附加组件部署及CNI网络插件切换实战 二进制部署K8S 1.35.0+最新版实战案例 etcd高可用集群部署及K8S周期性备份数据实战 基于Docker实现《若依》服务业务容器化实战篇 k8s集群基于Flannel网络插件部署凡人修仙传 k8s集群基于Calico网络插件部署凡人修仙传 ElasticSEearch 9.X环境部署 K8S Vertical Pod Autoscaler(VPA)实战案例 Prometheus监控自定义程序指标
Kubeasz基于ezctl实现k8s集群一键升级
尹正杰 · 2026-03-08 · via 博客园 - 尹正杰

                                              作者:尹正杰

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

一.升级前置环境检查机备份【生产环境必须做】

1.实验环境说明

	1.查看k8s集群版本
[root@master231 ~]# kubectl get nodes -o wide
NAME        STATUS                     ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
master231   Ready,SchedulingDisabled   master   16h   v1.33.1   10.0.0.231    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.1
master232   Ready,SchedulingDisabled   master   16h   v1.33.1   10.0.0.232    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.1
master233   Ready,SchedulingDisabled   master   16h   v1.33.1   10.0.0.233    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.1
worker66    Ready                      node     16h   v1.33.1   10.0.0.66     <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.1
worker77    Ready                      node     16h   v1.33.1   10.0.0.77     <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.1
[root@master231 ~]# 

	
	2.查看etcd状态
[root@master231 ~]# ETCDCTL_API=3 etcdctl --endpoints= https://10.0.0.231:2379,https://10.0.0.232:2379 ,https://10.0.0.233:2379 --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/kubernetes.pem --key=/etc/kubernetes/ssl/kubernetes-key.pem endpoint health
https://10.0.0.232:2379 is healthy: successfully committed proposal: took = 16.450488ms
https://10.0.0.231:2379 is healthy: successfully committed proposal: took = 13.752167ms
https://10.0.0.233:2379 is healthy: successfully committed proposal: took = 15.409178ms
[root@master231 ~]# 
[root@master231 ~]# ETCDCTL_API=3 etcdctl --endpoints= https://10.0.0.231:2379,https://10.0.0.232:2379 ,https://10.0.0.233:2379 --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/kubernetes.pem --key=/etc/kubernetes/ssl/kubernetes-key.pem endpoint health -w table
+-------------------------+--------+-------------+-------+
|        ENDPOINT         | HEALTH |    TOOK     | ERROR |
+-------------------------+--------+-------------+-------+
| https://10.0.0.231:2379 |   true | 24.369841ms |       |
| https://10.0.0.233:2379 |   true | 24.700832ms |       |
| https://10.0.0.232:2379 |   true | 27.282291ms |       |
+-------------------------+--------+-------------+-------+
[root@master231 ~]# 
[root@master231 ~]# 


温馨提示:
	同 Minor (1.33) 补丁版本跨 z 升级,kubeasz 支持滚动零停机升级。
	
	升级顺序:Master 控制平面→ETCD→Worker 节点,自动驱逐 Pod 滚动重建业务

2.etcd数据备份

	1.创建测试服务
[root@master231 ~]# cat > deploy-apps.yaml  <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: yinzhengjie-app01
spec:
  replicas: 3
  selector:
    matchLabels:
      apps: v1 
  template:
    metadata:
      labels:
        apps: v1
    spec:
      containers:
      - name: c1
        image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 
EOF


[root@master231 ~]# kubectl  apply -f deploy-apps.yaml 
deployment.apps/yinzhengjie-app01 created
[root@master231 ~]# 


	2.查看pod
[root@master231 ~]# kubectl get pods -o wide -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS       AGE   IP               NODE        NOMINATED NODE   READINESS GATES
default       yinzhengjie-app01-9c78ddbdc-47qfl          1/1     Running   0              34s   192.168.65.130   worker66    <none>           <none>
default       yinzhengjie-app01-9c78ddbdc-9c57t          1/1     Running   0              34s   192.168.65.131   worker66    <none>           <none>
default       yinzhengjie-app01-9c78ddbdc-g9cn5          1/1     Running   0              34s   192.168.165.5    worker77    <none>           <none>
kube-system   calico-kube-controllers-654fb9bf6f-x7fvs   1/1     Running   36 (92m ago)   17h   192.168.65.129   worker66    <none>           <none>
kube-system   calico-node-2srnp                          1/1     Running   1 (92m ago)    17h   10.0.0.233       master233   <none>           <none>
kube-system   calico-node-b7rp8                          1/1     Running   1 (92m ago)    17h   10.0.0.232       master232   <none>           <none>
kube-system   calico-node-pdhvj                          1/1     Running   1 (92m ago)    17h   10.0.0.231       master231   <none>           <none>
kube-system   calico-node-z27ph                          1/1     Running   1 (92m ago)    17h   10.0.0.77        worker77    <none>           <none>
kube-system   calico-node-ztd47                          1/1     Running   1 (92m ago)    17h   10.0.0.66        worker66    <none>           <none>
kube-system   coredns-5c4d969fb-d8zmd                    1/1     Running   1 (92m ago)    17h   192.168.165.3    worker77    <none>           <none>
kube-system   metrics-server-74f6d6fdd5-c5clz            1/1     Running   1 (92m ago)    17h   192.168.165.4    worker77    <none>           <none>
kube-system   node-local-dns-6mw5c                       1/1     Running   1 (92m ago)    17h   10.0.0.232       master232   <none>           <none>
kube-system   node-local-dns-7t6vh                       1/1     Running   1 (92m ago)    17h   10.0.0.77        worker77    <none>           <none>
kube-system   node-local-dns-8z679                       1/1     Running   1 (92m ago)    17h   10.0.0.231       master231   <none>           <none>
kube-system   node-local-dns-9pvf6                       1/1     Running   1 (92m ago)    17h   10.0.0.233       master233   <none>           <none>
kube-system   node-local-dns-hbsvr                       1/1     Running   1 (92m ago)    17h   10.0.0.66        worker66    <none>           <none>
[root@master231 ~]# 
[root@master231 ~]# 

	
	3.备份etcd数据
[root@ansible99 ~]# /etc/kubeasz/ezctl backup yinzhengjie-k8s

	4.查看备份的数据
[root@ansible99 ~]# ll /etc/kubeasz/clusters/yinzhengjie-k8s/backup/
total 11952
drwxr-xr-x 2 root root    4096 Jun  4 03:30 ./
drwxr-xr-x 5 root root    4096 Jun  3 09:48 ../
-rw------- 1 root root 6111264 Jun  4 03:30 snapshot_202606040330.db
-rw------- 1 root root 6111264 Jun  4 03:30 snapshot.db
[root@ansible99 ~]# 

二.升级k8s版本

1.下载二进制软件包

	1.下载软件包
[root@ansible99 ~]# wget https://dl.k8s.io/v1.33.11/kubernetes-server-linux-amd64.tar.gz


	2.覆盖软件包
[root@ansible99 ~]# tar xf kubernetes-server-linux-amd64.tar.gz -C /etc/kubeasz/bin/ kubernetes/server/bin/{kube-apiserver,kube-controller-manager,kube-scheduler,kubectl,kubelet,kube-proxy}  --strip-components=3


	3.测试验证
[root@ansible99 ~]# /etc/kubeasz/bin/kubelet --version
Kubernetes v1.33.11
[root@ansible99 ~]# 
[root@ansible99 ~]# /etc/kubeasz/bin/kubectl version
Client Version: v1.33.11
Kustomize Version: v5.6.0
Server Version: v1.33.1
[root@ansible99 ~]# 
[root@ansible99 ~]# /etc/kubeasz/bin/kubectl version --client
Client Version: v1.33.11
Kustomize Version: v5.6.0
[root@ansible99 ~]# 

2.基于ezctl实现k8s集群一键升级

参考链接:
	https://github.com/easzlab/kubeasz/blob/master/docs/op/upgrade.md
	
	
实操案例:
	1.切换当前所在集群为升级集群, 在kubeasz控制端执行dk ezctl checkout k8s-01
[root@ansible99 ~]# dk ezctl checkout yinzhengjie-k8s


	2.在kubeasz控制端执行升级
[root@ansible99 ~]# dk ezctl upgrade yinzhengjie-k8s


	3.测试验证升级后的版本
[root@master231 ~]# kubectl get nodes -o wide
NAME        STATUS                     ROLES    AGE   VERSION    INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
master231   Ready,SchedulingDisabled   master   24h   v1.33.11   10.0.0.231    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.1
master232   Ready,SchedulingDisabled   master   24h   v1.33.11   10.0.0.232    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.1
master233   Ready,SchedulingDisabled   master   24h   v1.33.11   10.0.0.233    <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.1
worker66    Ready                      node     24h   v1.33.11   10.0.0.66     <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.1
worker77    Ready                      node     24h   v1.33.11   10.0.0.77     <none>        Ubuntu 24.04.4 LTS   6.8.0-117-generic   containerd://2.1.1
[root@master231 ~]# 


温馨提示:
  Kubeasz这个项目的确能一键升级K8S版本,但是它的逻辑有问题,就是升级过程中,批量更新master节点,worker节点版本,并非滚动更新,生产环境中慎用。