生产环境的升级,请参看
https://blog.csdn.net/shm19990131/article/details/107107999/
提到的注意事项
更新步骤
- 升级所有节点上的kubeadm到1.19.1
- 检查是否可以更新
- 在其中一个master节点上执行更新
- 在这个更新完成后的master节点上更新kubect和kubelet
- 更新其它master,并更新kubectl和kubelet
- 更新work node,并更新kubectl和kubelet
查看仓库中的k8s版本
- repo文件
cat /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
- 查看k8s版本
yum clean all yum list --showduplicates kubeadm --disableexcludes=kubernetes
#查看当前集群版本
kubectl version
或
kubectl get nodes
升级 kubeadm所有节点都要做
yum update kubeadm-1.19.1-0
如果先更新kubeadm、kubectl、kubelet似乎也可以
如果3个软件包都更新了,此时使用
kubectl get nodes
可以看到,所有节点都为1.19.1
但使用
kubectl version
可以看到Server Version的信息仍为1.19.0
检查master节点能否升级,在其中一个master上执行
kubeadm upgrade plan
获取集群配置
kubectl get cm -n kube-system kubeadm-config -o jsonpath='{.data.ClusterConfiguration}' >kubeadm-config.yml
升级master,在其中一个master上执行
- 升级集群
kubeadm upgrade apply v1.19.1 --config kubeadm-config.yml
在实际的升级中我执行的是下面的命令
kubeadm upgrade apply v1.19.1
- 升级kubectl、kubelet
kubectl-1.19.1-0 kubelet-1.19.1-0 systemctl daemon-reload service kubelet restart
更新其它master,在其它master上执行
kubeadm upgrade node
执行完成后升级kubectl、kubelet
在work node节点上执行下面的命令
kubeadm upgrade node
执行完成后升级kubectl、kubelet
在work node上执行这个命令,实际只是更新了/var/lib/kubelet/config.yaml,在我这次升级中,发现执行这条命令后config.yaml前后没有变化