Rancher 2.4实现零宕机升级集群,无需担心组件出现短暂故障!

在瞬息万变的技术世界中,为用户提供持续不断、快速的创新至关重要。Kubernetes是一个极佳引擎,可以在云端、本地以及边缘驱动创新。因此,Kubernetes及其整个生态系统本身迭代十分迅速,让Kubernetes保持最新状态以确保安全和新功能的使用对于任何部署来说都至关重要。
 

什么是零宕机升级集群

Rancher 2.4已于上周GA,在Rancher 2.4中,我们正式引入了零宕机集群升级功能。通俗来说,这个功能可以让你在飞机飞行过程中更换引擎,而不受任何干扰。开发人员可以继续将应用程序部署到集群,用户也可以继续使用服务而不会受到干扰。与此同时,与Rancher的OOB (out of band)Kubernetes更新结合使用之后,集群operator可以在已发布版本的数小时内安全地发布维护和安全更新。

在Rancher之前的版本中,RKE首先升级etcd节点,并且注意不中断quorum。然后Rancher立刻迅速升级所有控制平面的节点,最后所有worker节点也会马上升级。这导致API和工作负载可用性会出现短暂故障。此外,一旦控制平面更新,Rancher便将集群状态视为“active”,使得operator可能不知道工作节点依旧在升级中。
 

 
在Rancher 2.4中,我们优化了整个升级流程以保证CI/CD流水线的正常交付和工作负载持续为流量提供服务。在整个过程中,Rancher会以更新状态查看集群,这使operator可以快速看到集群中正在发生的某些事情。

Rancher依旧先从ectd节点开始升级,一次升级一个节点,并且注意不破坏quorum。作为额外的预防措施,operator会在升级前对etcd和Kubernetes配置进行快照。并且如果你需要回滚,整个集群可以恢复到升级前的状态。

如你所知,部署应用程序到集群需要Kubernetes API可用。在Rancher 2.4中,Kubernetes控制平面节点也会一次升级一个。第一台server将会 offline、升级然后放回集群。接下来,仅当之前的节点报告其状态为健康时,控制平面节点才会开始升级。这一行为保证了API在升级过程中始终响应请求。
 

Rancher 2.4节点升级的两大更改

集群上的大多数活动发生在worker节点上。在Rancher 2.4中,节点的升级方式发生了两个重大变化。第一个是可以设置单次升级worker节点的数量。对于传统的方法或者较小的集群,operator可以一次只选择一个节点进行升级。对于较大集群的operator而言,可以调整设置以升级更大的批处理规模。该选项在风险和时间之间取得平衡,并提供了最大的灵活性。第二个更改是operator可以在worker节点升级前选择消耗工作负载。首先驱逐节点可以最大程度地减少Pod重新启动对Kubernetes次要版本升级的影响。

诸如CoreDNS、NGINX Ingress和CNI驱动程序之类的附加服务与worker节点同步更新。Rancher 2.4公开了每种附加部署类型的升级策略,这使得附加升级可以使用原生Kubernetes可用性结构。

原文地址:https://blog.51cto.com/12462495/2485695

时间: 2024-08-02 08:49:52

Rancher 2.4实现零宕机升级集群,无需担心组件出现短暂故障!的相关文章

Kubernetes 最佳实践:零宕机升级集群

文 / 开发技术推广工程师 Sandeep Dinesh 众所周知,为优化安全性和性能,最好让应用时刻保持最新状态.Kubernetes 和 Docker 可以简化上述更新操作,因为您可以用更新构建一个新容器,部署操作相对而言更加轻松. 与应用类似,Kubernetes 不断获取新功能和安全更新,因此,底层节点和 Kubernetes 基础架构也需要保持最新状态. 在本集的 "Kubernetes 最佳实践" 中,我们来看看 Google Kubernetes Engine 如何使升级

堡垒机jumpserver集群部署

本文参考老广开发二次开发后的堡垒机部署方案,在此基础上进行集群部署,提高其可靠性.尽管国外已经有类似的功能的堡垒机的发布,但是还是要感谢老广在百忙之中再次开发出精简功能,更加使用的jumpserver堡垒机. 本文内容虽然亲测,但难免仍有错误指出.各位同行发现有请帮忙反馈,以便及时改进. 目 录 堡垒机jumpserver集群部署手册... 1 目录... 2 部分一  堡垒机架构原理... 3 jumpserver基本架构... 3 jumpserver集群架构... 4 部分二部署... 5

Kubernetes集群实践(08)升级集群

ECK在集群上还没部署多久还没有正式投入使用,试用阶段也发现了不少问题,现在马上要正式的部署了,想着在正式部署的时候把k8s集群升级.看了些资料,由于我的集群只有一个master节点虽然很强大,一台HUAWEI Taishan2280v2 服务器配双路鲲鹏920(单路48核,所以物尽其用,跑了master节点,traefik和kubernetes-dashboard,nexus没有arm64的镜像,很可惜),但终归是个单点.因此,在没有什么负载的情况下把升级工作做了.集群升级分为Kubernet

oracle10g rac 零宕机修改public ip&vip

先修改1节点的 1.修改ocr中public的信息 [[email protected] ~]$ oifcfg delif -global eth0 [[email protected] ~]$ oifcfg setif -global eth0/172.168.1.0:public [[email protected] ~]$ oifcfg getif eth0 172.168.1.0 global public eth1 192.168.1.0 global cluster_intercon

使用kubeadm平滑地升级kubenetes集群(v1.10.2到v1.10.3)

写在前面 kubernetes是目前最炙手火热的容器管理.调度.编排平台,不仅拥有全面的生态系统,而且还开源.开放自治,谁贡献的多,谁的话语权就大,云提供商都有专门的工程师来从事kubernetes开源项目,其软件的升级迭代非常快,今天我们就来谈谈如何使用kubeadm平滑地升级kubenetes集群到v1.10.3. 备注:kubeadm是一个快速构建kubernetes集群的工具. 查看目前集群版本 从上面可以看到,master节点kubelete版本低于woker节点,kubernetes

kubeadm平滑升级kubernetes集群

1.检查集群可更新到的最新正式版 这步需要访问google上的文件,被Wall,超时 I0215 11:50:19.097435 24591 version.go:94] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable.txt": Get https://storage.googleapis.com/kubernetes

GaussDB T分布式集群部署以及升级指南

本文用四节点部署GaussDB T 1.0.1分布式集群,部署完成后再将其升级到1.0.2版本(直接安装1.0.2版本,在安装过程中会遇到segment fault报错,目前尚未解决).前期操作系统准备工作参考之前的几篇文章. 1.部署分布式集群 1.1 节点信息 各节点信息如下表所示: 1.2 集群参数文件 根据实际情况修改集群参数,或者通过database manager工具生成,内容如下: [[email protected] db]# vi clusterconfig.xml <?xml

VmWare平台Windows Server 2012 无响应宕机

我们生产服务器都部署在VMware ESXi 5.5平台上,最近大半年的时间,偶尔就会出现操作系统为Windows Servre 2012的服务器出现没有任何响应(unresponsive)的情况,出现问题的时候,服务器有下面一些现象: 1: 应用程序无法访问SQL Server数据库,使用Microsoft SQL Server Management Sutdio去测试连接数据库,也会返回连接错误. 2: 网络有时候能Ping通,有时候是Ping不通的情况. 3: 远程连接无法访问服务器,从V

记一次dell R720服务器ESXI5.5系统宕机的奇葩经历

?记一次dell R720服务器ESXI5.5系统宕机的奇葩经历? 总结点: 1,  没看宕机的原因. 2,  无故重置bois. 3,  不看日志. 4,  Dell r720服务器 内存需要按照顺序插入,如:A1,A2,A3,A4. 5,  使用idrac远程管理页面. 6,  要有自己的判断问题思路,不要什么都依着400. 7,  对问题不重视,要不然就不会直接重启设备了. 失误点一:没看宕机的原因 17号下午5点多的时候,正用着服务器上的虚拟机工作时,mstsc窗口突然断开了.Ping也