升级集群
本页概述升级Kubernetes集群的步骤。
升级集群的方式取决于你最初部署它的方式、以及后续更改它的方式。
从高层规划的角度看,要执行的步骤是:
在开始之前
你必须有一个集群。本页内容涉及从Kubernetes1.23升级到Kubernetes1.24。如果你的集群未运行Kubernetes1.23,那请参考目标Kubernetes版本的文档。
升级方法kubeadm
如果你的集群是使用kubeadm安装工具部署而来,那么升级集群的详细信息,请参阅升级kubeadm集群。
升级集群之后,要记得安装最新版本的kubectl
手动部署
Caution:这些步骤不考虑第三方扩展,例如网络和存储插件。
你应该跟随下面操作顺序,手动更新控制平面:
现在,你应该安装最新版本的kubectl.
对于集群中的每个节点,排空节点,然后,或者用一个运行了1.24kubelet的新节点替换它;或者升级此节点的kubelet,并使节点恢复服务。
其他部署方式
参阅你的集群部署工具对应的文档,了解用于维护的推荐设置步骤。
升级后的任务 切换集群的存储API版本
对象序列化到etcd,是为了提供集群中活动Kubernetes资源的内部表示法,这些对象都使用特定版本的API编写。
当底层的API更改时,这些对象可能需要用新API重写。如果不能做到这一点,会导致再也不能用KubernetesAPI服务器解码、使用该对象。
对于每个受影响的对象,用最新支持的API获取它,然后再用最新支持的API写回来。
更新清单
升级到新版本Kubernetes就可以提供新的API。
你可以使用kubectlconvert命令在不同API版本之间转换清单。例如:
kubectl convert -f pod.yaml --output-version v1
kubectl替换了pod.yaml的内容,在新的清单文件中,kind被设置为Pod(未变),但apiVersion则被修订了。