参考官方文档 Upgrading kubeadm clusters 在 ubuntu 18.04 上完成了升级,记录一下升级步骤。
一、升级第一个 master 节点
apt-get 安装 kubeadm 1.17.0
apt-mark unhold kubeadm &&
apt-get update && apt-get install -y kubeadm=1.17.0-00 &&
apt-mark hold kubeadm
放空当前节点($CP_NODE为当前升级的节点名称)
kubectl drain $CP_NODE --ignore-daemonsets
升级前检查
kubeadm upgrade plan
出现告警
[preflight] Running pre-flight checks.
[WARNING CoreDNSUnsupportedPlugins]: there are unsupported plugins in the CoreDNS Corefile
通过 github 上 的 相关 issue 知道这个问题没有影响,可以忽略。
use the --ignore-preflight-errors=CoreDNSUnsupportedPlugins while upgrading. The proxy plugin will be replaced to use forward automatically.
执行升级命令
kubeadm upgrade apply v1.17.0 --ignore-preflight-errors=CoreDNSUnsupportedPlugins
升级成功
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.17.0". Enjoy!
解除当前节点的放空状态
kubectl uncordon $CP_NODE
二、升级其他 master 节点的 kubeadm
apt-get 安装 kubeadm 1.17.0
apt-mark unhold kubeadm &&
apt-get update && apt-get install -y kubeadm=1.17.0-00 &&
apt-mark hold kubeadm
执行升级命令
kubeadm upgrade node
三、升级所有 master 节点的 kubelet 与 kubectl
执行升级命令
apt-mark unhold kubelet kubectl &&
apt-get update && apt-get install -y kubelet=1.17.0-00 kubectl=1.17.0-00 &&
apt-mark hold kubelet kubectl &&
systemctl restart kubelet
四、升级 worker 节点的 kubeadm 以及 kubelet 与 kubectl
apt-get 安装 kubeadm 1.17.0
apt-mark unhold kubeadm &&
apt-get update && apt-get install -y kubeadm=1.17.0-00 &&
apt-mark hold kubeadm
在 master 上放空所升级的 worker 节点
NODE=k8s-node4 &&
kubectl drain $NODE --ignore-daemonsets
在 worker 节点上执行升级命令
kubeadm upgrade node
在 worker 节点上升级 kubelet 与 kubectl
apt-mark unhold kubelet kubectl &&
apt-get update && apt-get install -y kubelet=1.17.0-00 kubectl=1.17.0-00 &&
apt-mark hold kubelet kubectl &&
systemctl restart kubelet
在 master 上解除 worker 节点的放空
kubectl uncordon $NODE
到此所有节点升级完成。
NAME STATUS ROLES AGE VERSION
k8s-master0 Ready master 19d v1.17.0
k8s-master1 Ready master 19d v1.17.0
k8s-master2 Ready master 19d v1.17.0
k8s-node3 Ready <none> 22h v1.17.0
k8s-node4 Ready <none> 22h v1.17.0
k8s-node5 Ready <none> 28h v1.17.0