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/