k8s版本平滑升级

容器化技术兴起后,k8s无疑成为了容器编排技术的事实标准 。各行各业软件领域的广泛应用,进一步促进了k8s的快速发展,对应版本的更新也层出不穷 。实际项目使用过程中,可能会遇到框架层面的bug在新版本中得到修复,高版本的一些特性刚好满足新的业务需求,这时候就需要在原有k8s集群上进行升级 。如何快速、平滑的实现k8s的版本更新?本文将向大家分享k8s常规在线升级过程,希望对大家有所帮助和参考 。
升级缘由本人测试环境centos 7,k8s 版本1.18.2,k8s集群基于官方推荐KubeAdm安装 。
升级原因:
centos 7 系统下实现k8s service kube-proxy ipvs模式,配置负载均衡时报如下错误 。
E0326 15:20:23.1593641 proxier.go:1950] Failed to list IPVS destinations, error: parseIP Error ip=[10 96 0 10 0 0 0 0 0 0 0 0 0 0 0 0]E0326 15:20:23.1593881 proxier.go:1192] Failed to sync endpoint for service: 10.8.0.10:53/UPD, err: parseIP Error ip=[10 96 0 16 0 0 0 0 0 0 0 0 0 0 0 0]网上分析这个错误是k8s ipvs 依赖的模块在centos 7 系统内核的ipvs中找不到,换句话说:k8s当前ipvs依赖版本高于centos 7 中的ipvs版本,两个版本存在兼容问题 。
解决方式:

  1. 升级centos 7 lvs内核版本 。
  2. 升级k8s版本1.18.3+ 。
这里选择升级k8s版本来解决问题 。
在通过kubeadm安装k8s集群时,kubeadm已自带在线升级功能 。所以本文介绍的升级功能仅限于kubeadm的集群安装方式 。rancher之类的k8s集群安装不包含本文讨论范围内 。
k8s内部包含很多组件,如api server、controller manager、Scheduler、kube proxy等 。升级也包含了对应组件的版本升级 。k8s升级有一个原则:各组件版本要么等于api server版本,要么小于api server一个小版本 。版本号规则x.y.z,其中x为大版本,y小版本,z缺陷修复版本 。比如:api server当前版本为1.18.2,kube proxy版本可以为1.18.*或者1.17.* 。为便于维护,最好统一为同一版本 。
本文示例版本号从1.18.3升级到1.18.6 。
升级环境
  • centos 7
  • k8s kubeadm安装集群
  • 1个master节点,2个worker节点
版本升级kubernetes 状态检查
master节点执行,查看当前状态:
【k8s版本平滑升级】kubectl get node
k8s版本平滑升级

文章插图
 
检查当前版本和升级方案
kubeadm upgrade plan
k8s版本平滑升级

文章插图
 
上图可知:当前的集群cluster版本、kubeadm版本,可升级最近可用稳定版本 。
升级前保证kubeadm等工具先升级到目标版本,这里是1.18.6 。未选择最新版本1.18.8,考虑版本太新国内镜像未及时更新对应版本,升级时很容易timeout镜像下载失败 。
yum -y install kubeadm-1.18.6 kubelet-1.18.6 kubectl-1.18.6
k8s版本平滑升级

文章插图
 
执行组件版本更新
kubeadm upgrade Apply v1.18.6systemctl daemon-reloadsystemctl restart kubelet
k8s版本平滑升级

文章插图
 
保证网络畅通,耐心等待一段时间 。出现以上提示信息,master节点升级成功 。
其他master和worker节点执行以下操作
yum -y install kubeadm-1.18.6 kubelet-1.18.6 kubectl-1.18.6systemctl daemon-reloadsystemctl restart kubeletmaster节点查看当前版本
kubectl version
k8s版本平滑升级

文章插图
 
上图显示server端对应版本1.18.6,升级成功 。
总结本文介绍了k8s集群的版本升级 。了解到kubeadm的升级方案查看,版本选择,升级执行命令使用 。整个过程,不停机,应用无感知,保证集群的平滑更新 。
由于环境所限,未有全面测试 。若有所疏漏请多多指正 。
对技术有热情,请关注我!坚持原创,共同进步!谢谢 。




    推荐阅读