K8s集群从v1.21.1升级到1.21.3

升级版本的同时证书也会进行续签


1. 查看当前kubeadm版本是否有升级计划
# 查看升级计划
kubeadm upgrade plan
# 查看镜像
kubeadm config images list
2.Master节点升级 kubeadm
# 用最新的补丁版本号替换 1.21.x-0 中的 x
yum install -y kubeadm-1.21.3-0 --disableexcludes=kubernetes
3.各Master节点预先下载好镜像
# 最好和你的kubeadm配置文件一致
export MY_REGISTRY=registry.aliyuncs.com/k8sxio

docker pull ${MY_REGISTRY}/kube-apiserver:v1.21.3
docker pull ${MY_REGISTRY}/kube-controller-manager:v1.21.3
docker pull ${MY_REGISTRY}/kube-scheduler:v1.21.3
docker pull ${MY_REGISTRY}/kube-proxy:v1.21.3
# 如果使用kubeadm配置文件可以忽略这一步修改tag
docker tag ${MY_REGISTRY}/kube-proxy:v1.21.3 k8s.gcr.io/kube-apiserver:v1.21.3
docker tag ${MY_REGISTRY}/kube-controller-manager:v1.21.3 k8s.gcr.io/kube-controller-manager:v1.21.3
docker tag ${MY_REGISTRY}/kube-scheduler:v1.21.3 k8s.gcr.io/kube-scheduler:v1.21.3
docker tag ${MY_REGISTRY}/kube-proxy:v1.21.3 k8s.gcr.io/kube-proxy:v1.21.3

4.Master节点升级

升级kubeadm upgrade

kubeadm upgrade apply v1.21.3
# 如果失败使用配置kubeadm config view 文件方式修改,或者找到之前的配置文件修改
# imageRepository 的值修改为:registry.cn-hangzhou.aliyuncs.com/google_containers
# kubernetesVersion 的值修改为: v1.15.5
kubeadm config view 
vim upgrade.yaml
kubeadm upgrade apply --config upgrade.yaml

按需腾空节点驱逐Pod

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

升级 kubelet 和 kubectl

# 用最新的补丁版本号替换 1.22.x-00 中的 x
yum install -y kubelet-1.21.3-0 kubectl-1.21.3-0 --disableexcludes=kubernetes
sudo systemctl daemon-reload
sudo systemctl restart kubelet
5.Node节点升级
# 用最新的补丁版本号替换 1.21.x-0 中的 x
yum install -y kubeadm-1.21.3-0 --disableexcludes=kubernetes
6.Node节点kubeadm upgrade

升级kubeadm upgrade

kubeadm upgrade node

升级 kubelet 和 kubectl

# 用最新的补丁版本号替换 1.22.x-00 中的 x
yum install -y kubelet-1.21.3-0 kubectl-1.21.3-0 --disableexcludes=kubernetes
sudo systemctl daemon-reload
sudo systemctl restart kubelet

7.检查版本升级

kubectl get nodes -o wide
kubectl version
kubeadm config view
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐