您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

k8s版本平滑升级

时间:2020-08-21 14:38:47  来源:  作者:

容器化技术兴起后,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.159364  1 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.159388  1 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节点执行,查看当前状态:

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.6
systemctl daemon-reload
systemctl restart kubelet
k8s版本平滑升级

 

保证网络畅通,耐心等待一段时间。出现以上提示信息,master节点升级成功。

其他master和worker节点执行以下操作

yum -y install kubeadm-1.18.6 kubelet-1.18.6 kubectl-1.18.6
systemctl daemon-reload
systemctl restart kubelet

master节点查看当前版本

kubectl version
k8s版本平滑升级

 

上图显示server端对应版本1.18.6,升级成功。

总结

本文介绍了k8s集群的版本升级。了解到kubeadm的升级方案查看,版本选择,升级执行命令使用。整个过程,不停机,应用无感知,保证集群的平滑更新。

由于环境所限,未有全面测试。若有所疏漏请多多指正。

对技术有热情,请关注我!坚持原创,共同进步!谢谢。



Tags:k8s   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
背景:目前prometheus 给pod的内存告警阀值设置的85%,由于JVM 设置最高申请内存为pod limit 的75%,通过arthas-boot查看到堆内存和元空间占用内存之和跟prometheus告警值不同。...【详细内容】
2021-09-16  Tags: k8s  点击:(104)  评论:(0)  加入收藏
近期由于工作原因,在项目支持的过程中,进行了一次K8S的基础环境部署,云平台一直是公司的重要底座,而我由于一系列原因,一直没有亲自尝试,通过本次的机会,让我重新做了一遍,也找到了...【详细内容】
2021-09-09  Tags: k8s  点击:(90)  评论:(0)  加入收藏
概述谷歌云使用先进的 Andromeda 网络来实现 VPC 内实例之间的相互访问,以及 Google Kubernetes Engine (GKE) 的 Pod 的跨节点互访,避免了配置静态路由或者 Overlay 网络带来...【详细内容】
2021-08-20  Tags: k8s  点击:(103)  评论:(0)  加入收藏
1.创建yaml模板 kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml 2.修改模板 vim web.yamlapiVersion: apps/v1kind: Deploymentmetadata:label...【详细内容】
2021-07-20  Tags: k8s  点击:(160)  评论:(0)  加入收藏
Jenkins 是目前最常用的持续集成工具,拥有近50%的市场份额,他还是很多技术团队的第一个使用的自动化工具。由此可见他的重要性!这份Jenkins宝典从入门介绍到结合Docker+SpringC...【详细内容】
2021-06-09  Tags: k8s  点击:(145)  评论:(0)  加入收藏
kubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的工具。这个工具能通过两条指令完成一个 kubernetes 集群的部署:# 创建一个 Master 节点$ kubeadm init # 将一...【详细内容】
2021-04-29  Tags: k8s  点击:(276)  评论:(0)  加入收藏
K8S 网络设计与实现是在学习 K8S 网络过程中总结的内容。本文按照 K8S 网络设计原则、Pod 内部网络、Pod 之间网络等几个步骤讲解 K8S 复杂的网络架构。 图片出自:《你女儿也...【详细内容】
2021-04-01  Tags: k8s  点击:(266)  评论:(0)  加入收藏
记录在 ubuntu-20.04.2-live-server系统上通过rancher安装k8s的过程。0. 更换阿里云软件源为了保障下载速度,将ubuntu软件源替换为阿里云软件源。如果网络通畅,可跳过。0.1....【详细内容】
2021-03-26  Tags: k8s  点击:(324)  评论:(0)  加入收藏
1.创建一个简单的应用程序在安装好Docker后,现在让我们来创建一个简单的应用程序。我们先创建一个简单的Node.js Web应用,然后将它打包到镜像中。该应用可以接受HTTP请求并返...【详细内容】
2021-03-10  Tags: k8s  点击:(219)  评论:(0)  加入收藏
一、日志收集的需求背景:• 业务发展越来越庞大,服务器越来越多​ • 各种访问日志、应用日志、错误日志量越来越多​ • 开发人员排查问题,需要到服务器上查日志,...【详细内容】
2021-03-05  Tags: k8s  点击:(189)  评论:(0)  加入收藏
▌简易百科推荐
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  实战Java    Tags:Docker   点击:(10)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  编程菌zfn    Tags:Docker   点击:(10)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  无    Tags:docker   点击:(47)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  小码哥聊软件测试    Tags:Docker   点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  抓蛙程序猿    Tags:docker   点击:(48)  评论:(0)  加入收藏
环境:Spring5.3.10通常,应用程序开发人员不需要对ApplicationContext实现类进行子类化。相反,SpringIOC容器可以通过插入特殊集成接口的实现来扩展。使用BeanPostProcessor自定...【详细内容】
2021-10-26  Java网络研发架构师    Tags:Spring   点击:(33)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  运维贼船    Tags:docker   点击:(61)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  程序狗爱化妆    Tags:Nacos   点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  晋升奶爸的垃圾佬    Tags:Docker   点击:(167)  评论:(0)  加入收藏
环境要求 ubuntu系统:20.04 docker版本:20.10.7 redis版本:6.0.6步骤由于我这里已经有相应的redis镜像,这里就不记录了,关于docker一些基础知识可以看我以前的笔记开启3台re...【详细内容】
2021-07-26  石老师小跟班    Tags:Redis主从复制   点击:(117)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条