电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

Kubernetes 滚动发布机制详解

  • 资源ID:263253790       资源大小:2.34MB        全文页数:10页
  • 资源格式: DOCX        下载积分:15金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要15金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

Kubernetes 滚动发布机制详解

    Kubernetes 滚动发布机制详解    导读在当下微服务架构盛行的时代,用户希望应用程序时时刻刻都是可用,为了满足不断变化的新业务,需要不断升级更新应用程序,有时可能需要频繁的发布版本。实现"零停机"、“零感知”的持续集成(Continuous Integration)和持续交付/部署(Continuous Delivery)应用程序,一直都是软件升级换代不得不面对的一个难题和痛点,也是一种追求的理想方式,也是DevOps诞生的目的。1、滚动发布把一次完整的发布过程,合理地分成多个批次,每次发布一个批次,成功后,再发布下一个批次,最终完成所有批次的发布。在整个滚动过程期间,保证始终有可用的副本在运行,从而平滑的发布新版本,实现零停机(without an outage)、用户零感知,是一种非常主流的发布方式。由于其自动化程度比较高,通常需要复杂的发布工具支撑,而k8s可以完美的胜任这个任务。2、k8s滚动更新机制k8s创建副本应用程序的最佳方法就是部署(Deployment),部署自动创建副本集(ReplicaSet),副本集可以精确地控制每次替换的Pod数量,从而可以很好的实现滚动更新。具体来说,k8s每次使用一个新的副本控制器(replication controller)来替换已存在的副本控制器,从而始终使用一个新的Pod模板来替换旧的pod模板。大致步骤如下:1. 创建一个新的replication controller。2. 增加或减少pod副本数量,直到满足当前批次期望的数量。3. 删除旧的replication controller。3、演示使用kubectl更新一个已部署的应用程序,并模拟回滚。为了方便分析,将应用程序的pod副本数量设置为10。kubectl -n k8s-ecoysystem-apps scale deployment helloworldapi -replicas=103.1. 发布微服务查看部署列表$ kubectl get deployments -n k8s-ecoysystem-apps查看正在运行的pod$ kubectl get pods -n k8s-ecoysystem-apps通过pod描述,查看应用程序的当前映像版本$ kubectl describe pods -n k8s-ecoysystem-apps升级镜像版本到v2.3$ kubectl -n k8s-ecoysystem-apps set image deployments/helloworldapi helloworldapi=3.2. 验证发布检查rollout状态kubectl -n k8s-ecoysystem-apps rollout status deployments/helloworldapi检查pod详情kubectl describe pods -n k8s-ecoysystem-apps从上图可以看到,镜像已经升级到v2.3版本3.3. 回滚发布kubectl -n k8s-ecoysystem-apps rollout undo deployments/helloworldapi到目前为止,整个滚动发布工作就圆满完成了!那么如果我们想回滚到指定版本呢?*答案是k8s完美支持,并且还可以通过资源文件进行配置保留的历史版次量。*由于篇幅有限,感兴趣的朋友,可以自己下去实战,回滚命令如下:kubectl -n k8s-ecoysystem-apps rollout undo deployment/helloworldapi -to-revision=<版次>4、原理k8s精确地控制着整个发布过程,分批次有序地进行着滚动更新,直到把所有旧的副本全部更新到新版本。实际上,k8s是通过两个参数来精确地控制着每次滚动的pod数量:· > maxSurge > 滚动更新过程中运行操作期望副本数的最大pod数,可以为绝对数值(eg: > 5),但不能为0; > 也可以为百分数(eg: > 10%)。 > 默认为25%。· > maxUnavailable > 滚动更新过程中不可用的最大pod数,可以为绝对数值(eg: > 5),但不能为0; > 也可以为百分数(eg: > 10%)。 > 默认为25%。如果未指定这两个可选参数,则k8s会使用默认配置:kubectl -n k8s-ecoysystem-apps get deployment helloworldapi -o yaml4.1. 剖析部署概况· DESIRED > 最终期望处于READY状态的副本数· CURRENT > 当前的副本总数· UP-TO-DATE > 当前完成更新的副本数· AVAILABLE > 当前可用的副本数当前的副本总数 = 10 + 10 25% = 13,所以CURRENT为13。当前可用的副本数 = 10 - 10 25% = 8,所以AVAILABLE为8。4.2. 剖析部署详情kubectl -n k8s-ecoysystem-apps describe deployment helloworldapi整个滚动过程是通过控制两个副本集来完成的,新的副本集:helloworldapi-6564f59f66;旧的副本集:helloworldapi-6f4959c8c7 。理想状态下的滚动过程:1. 创建了一个新的副本集,并为其分配3个新版本的pod,使副本总数达到13,一切正常。2. 通知旧副本集,销毁2个旧版本的pod,使可用副本总数保持到8,一起正常。3. 当两个副本销毁成功后,通知新副本集,再新增2个新版本的pod,使副本总数达到13,一切正常。只要销毁成功,新副本集就会创造新的pod,一直循环,直到旧的副本集pod数量为0。滚动升级一个服务,实际就是创建一个新的RS,然后逐渐将新RS中副本数增加到理想状态,将旧RS中的副本数减小到0的复合操作; 无论理想还是不理想,k8s最终都会使应用程序全部更新到期望状态,都会始终保持最大的副本总数和可用副本总数的不变性! ! ! 5、总结本篇详解了k8s滚动更新机制,并通过实战演示了微服务的滚动更新,当然还可以加入健康检查和历史版次回滚,大家可以下去自己实践,在实战中学习和进步!  -全文完-

注意事项

本文(Kubernetes 滚动发布机制详解)为本站会员(Baige****0346)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.