赞
踩
完成初始化的V1.24.1版本的集群环境:
(vms61)192.168.26.61——master
(vms62)192.168.26.62——worker
1.更新的类型有:
(1)功能性的更新
(2)安全性的更新
(3)bug的修复
假设当我们在使用某一个版本的k8s时,发现某些功能不符合我们的需求,觉得有些问题,官方发行了另一个版本并能解决这些问题,就可以将k8s升级到改版本
2.k8s环境中涉及到了各种各样的证书
ls /etc/kubernetes/pki/
#输出:
apiserver.crt apiserver.key ca.crt front-proxy-ca.crt front-proxy-client.key
apiserver-etcd-client.crt apiserver-kubelet-client.crt ca.key front-proxy-ca.key sa.key
apiserver-etcd-client.key apiserver-kubelet-client.key etcd front-proxy-client.crt sa.pub
ls /etc/kubernetes/pki/etcd/
#输出:
ca.crt ca.key healthcheck-client.crt healthcheck-client.key peer.crt peer.key server.crt server.key
ca的证书(ca.crt)期限是十年,由ca颁发的一些普通的证书如apiserver.crt等期限只有一年
所以k8s使用了一年后,会发现k8s过期了,不能继续使用了
证书是一年的有效期——为什么不是5年?不是8年?:因为它希望你能够尽可能地更新,只要一更新,k8s就会自动帮你的证书续期
3.kubernetes的版本命名规则:v主版本号.次版本号.补丁号
4.更新的时候,不能跨版本更新,如:不能从1.21版本直接更新到1.23版本,而是要1.21更新到1.22,然后从1.22更新到1.23
补丁号可以忽略,如:可以从1.23.6更新到1.24.0
5.升级k8s步骤:
从机器的层面看:
1.先更新master(若有多个master,则一台一台去更新)
2.再更新worker
从软件层面来看:
1.下载要更新版本的kubeadm工具包
2.把节点设置为drain(驱逐出集群)
3.开始更新kubeadm
4.更新kubelet、kubectl
5.重启kubelet
6.恢复此节点
环境:
完成初始化的1.24.1版本的k8s集群
(vms61)192.168.26.61——master
(vms62)192.168.26.62——worker
更新步骤可查看官方文档:https://kubernetes.io/zh-cn/docs/home/
搜索 “upgrade”
在master上操作
1.查看kubeadm所有可用版本
#首先清除yum缓存
yum clean all
yum list --showduplicates kubeadm --disableexcludes=kubernetes
2.下载kubeadm1.24.2版本包
yum install -y kubeadm-1.24.2-0 --disableexcludes=kubernetes
3.对master节点drain操作
kubectl drain vms61.rhce.cc --ignore-daemonsets
4.升级kubeadm各个组件到1.24.2版本
kubeadm upgrade apply v1.24.2
#若升级时不想升级某个组件,可以使用--xxx-upgrade=false
#如升级所有组件到1.24.2版本,除了etcd
kubeadm upgrade apply v1.24.2 --etcd-upgrade=false
yum install -y kubelet-1.24.2-0 kubectl-1.24.2-0 --disableexcludes=kubernetes
systemctl daemon-reload ; systemctl restart kubelet
kubectl uncordon vms61.rhce.cc
若有多个master,则只要第一个master执行kubeadm upgrade apply v1.24.2
这个操作,而其他master上则是将这步改为执行kubeadm upgrade node
,除此之外,其他步骤一样
来到worker机器上操作
1.下载kubeadm1.24.2版本工具包
yum install -y kubeadm-1.24.2-0 --disableexcludes=kubernetes
2.来到master上,对要更新的worker节点进行drain操作
kubectl drain vms62.rhce.cc --ignore-daemonsets --force
3.回到worker,更新kubeadm
(除了第一个更新的master执行kubeadm upgrade apply v1.24.2
外,其他节点包括其他master都是执行kubeadm upgrade node
)
更新哪个节点,就在哪个节点执行这个命令
kubeadm upgrade node
yum install -y kubelet-1.24.2-0 kubectl-1.24.2-0 --disableexcludes=kubernetes
systemctl daemon-reload ; systemctl restart kubelet
kubectl uncordon vms62.rhce.cc
集群全部升级完成
注意:从1.23版本后,docker不能再用了,因此若要从1.23版本升级到1.24,则首先要将k8s环境从docker迁移到containerd
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。