Kubernetes 集群升级(kubeadm升级方式)

1、升级前的版本确认(相同的大版本号下的小版本升级还是跨版本升级)

      例如:Kubernetes 集群从 1.29.x 版本 升级到 1.30.x 版本以及从 1.30.x 升级到 1.30.y(其中 y > x)

2、配置kubernetes安装源(已配置kubernetes源,此处跳过)

      Debian / Ubuntu

apt-get update && apt-get install -y apt-transport-https
curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/Release.key |
    gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ /" |
    tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl

      CentOS / RHEL / Fedora

cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/repodata/repomd.xml.key
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

3、升级控制平面节点      

      注意:如果需要安装特定版本,请参照如下方式

# 在列表中查找最新的 1.30 版本
# 它看起来应该是 1.30.x-*,其中 x 是最新的补丁版本
sudo yum list --showduplicates kubeadm --disableexcludes=kubernetes

      升级kubeadm

# 用最新的补丁版本号替换 1.30.x-* 中的 x
sudo yum install -y kubeadm-'1.30.x-*' --disableexcludes=kubernetes

      验证版本

kubeadm version

      验证升级计划

sudo kubeadm upgrade plan

      升级到目标版本

# 将 x 替换为你为此次升级所选择的补丁版本号
sudo kubeadm upgrade apply v1.30.x

     手动升级你的 CNI 驱动插件

4、升级其他控制平面节点

sudo kubeadm upgrade node

5、腾空节点

# 将 <node-to-drain> 替换为你要腾空的控制面节点名称
kubectl drain <node-to-drain> --ignore-daemonsets

6、升级 kubelet 和 kubectl

# 用最新的补丁版本号替换 1.30.x-* 中的 x
sudo yum install -y kubelet-'1.30.x-*' kubectl-'1.30.x-*' --disableexcludes=kubernetes

     重启 kubelet

sudo systemctl daemon-reload
sudo systemctl restart kubelet

7、解除节点的保护

# 将 <node-to-uncordon> 替换为你的节点名称
kubectl uncordon <node-to-uncordon>

8、升级工作节点

# 将 1.30.x-* 中的 x 替换为最新的补丁版本
sudo yum install -y kubeadm-'1.30.x-*' --disableexcludes=kubernetes

9、执行 "kubeadm upgrade"

sudo kubeadm upgrade node

10、腾空节点

# 在控制平面节点上执行此命令
# 将 <node-to-drain> 替换为你正腾空的节点的名称
kubectl drain <node-to-drain> --ignore-daemonsets

11、升级 kubelet 和 kubectl

# 将 1.30.x-* 中的 x 替换为最新的补丁版本
sudo yum install -y kubelet-'1.30.x-*' kubectl-'1.30.x-*' --disableexcludes=kubernetes

     重启 kubelet

sudo systemctl daemon-reload
sudo systemctl restart kubelet

12、取消对节点的保护

# 在控制平面节点上执行此命令
# 将 <node-to-uncordon> 替换为你的节点名称
kubectl uncordon <node-to-uncordon>

13、验证集群状态

kubectl get nodes

参考:

https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/cluster-upgrade/
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值