k8s集群在线升级

240 阅读1分钟

下载想升级的k8s版本

apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm=1.26.0-00 && \
apt-mark hold kubeadm

各节点下载镜像

sudo kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers

编辑修改/etc/containerd/config.toml

sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"

restart containerd

systemctl restart containerd.service

Verify the upgrade plan: —-first controller

kubeadm upgrade plan

Choose a version to upgrade to, and run the appropriate command. For example:—-first controller

 # replace x with the patch version you picked for this upgrade
sudo kubeadm upgrade apply v1.26.0

For the other control plane nodes and work nodes

Same as the first control plane node but use:

sudo kubeadm upgrade node

驱逐本机节点

kubectl drain <node-to-drain> --ignore-daemonsets

升级kubectl和kubelet

apt-mark unhold kubelet kubectl && \
apt-get update && apt-get install -y kubelet=1.26.0-00 kubectl=1.26.0-00 && \
apt-mark hold kubelet kubectl

Restart the kubelet:

sudo systemctl daemon-reload
sudo systemctl restart kubelet

Uncordon the node

# replace <node-to-drain> with the name of your node
kubectl uncordon <node-to-drain>