kubernetes版本的升級主要是升級kubeadm、kubectl和kubelet,升級應遵循以下原則:
1、apiserver保護版本最大,其它功能最多比apiserver小一個小版本號。
2、不能跨小版本升級。
使用下列命令列出可用版本
yum list --showduplicates kubeadm --disableexcludes=kubernetes
我的環境包括一個控制節點和二個業務節點,操作系統CentOS7,這次升級從 1.15.2 升級到 1.16.2。
一、升級第一個控制節點
1、升級kubeadm
yum install -y kubeadm-1.16.2-0 --disableexcludes=kubernetes
kubectl drain k8s-master --ignore-daemonsets --force
kubeadm upgrade plan
kubeadm upgrade apply v1.16.2
kubectl uncordon k8s-master
yum install -y kubelet-1.16.2-0 kubectl-1.16.2-0 --disableexcludes=kubernetes
systemctl restart kubelet
2、升級業務節點(同樣適用於剩餘的其它控制節點)
yum install -y kubeadm-1.16.2-0 --disableexcludes=kubernetes
#在master節點執行
kubectl drain k8s-node-a --ignore-daemonsets --force
kubeadm upgrade node
yum install -y kubelet-1.16.2-0 kubectl-1.16.2-0 --disableexcludes=kubernetes
systemctl restart kubelet
#在master節點執行
kubectl uncordon k8s-node-a
可參考官方升級文檔:
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/