2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Kubernetes 滚动更新速率控制解读

  • 2019-12-09
  • 本文字数:893 字

    阅读完需:约 3 分钟

Kubernetes滚动更新速率控制解读

1 含义

服务在滚动更新时,deployment 控制器的目的是:给旧版本(old_rs)副本数减少至 0、给新版本(new_rs)副本数量增至期望值(replicas)。大家在使用时,通常容易忽视控制速率的特性,以下是 kubernetes 提供的两个参数:


  1. maxUnavailable:和期望 ready 的副本数比,不可用副本数最大比例(或最大值),这个值越小,越能保证服务稳定,更新越平滑;

  2. maxSurge:和期望 ready 的副本数比,超过期望副本数最大比例(或最大值),这个值调的越大,副本更新速度越快。

2 取值范围

数值

  1. maxUnavailable: [0, 副本数]maxSurge: [0, 副本数]

  2. maxSurge: [0, 副本数]


注意:两者不能同时为 0。

比例

  1. maxUnavailable: [0%, 100%] 向下取整,比如 10 个副本,5%的话==0.5 个,但计算按照 0 个;

  2. maxSurge: [0%, 100%] 向上取整,比如 10 个副本,5%的话==0.5 个,但计算按照 1 个;


注意:两者不能同时为 0。

建议配置

  1. maxUnavailable == 0

  2. maxSurge == 1


这是我们生产环境提供给用户的默认配置。即“一上一下,先上后下”最平滑原则:1 个新版本 pod ready(结合 readiness)后,才销毁旧版本 pod。此配置适用场景是平滑更新、保证服务平稳,但也有缺点,就是“太慢”了。

3 自定义策略

Deployment controller 调整 replicaset 数量时,严格通过以下公式来控制发布节奏。所以,如需快速发布,可根据实际情况去调整这两个值:


(目标副本数-maxUnavailable) <= 线上实际Ready副本数 <= (目标副本数+maxSurge)
复制代码


举例:如果期望副本数是 10,期望能有至少 80%数量的副本能稳定工作,所以:maxUnavailable = 2,maxSurge = 2 (可自定义,建议与 maxUnavailable 保持一致)


8 <= 线上实际Ready副本数 <= 12
复制代码


这样,更新过程中,线上能够正常提供服务的 pod 数总会保持在这个区间内。

4 总结

本文解释了 kubernetes 最易忽略的“滚动更新策略中控制更新速率”的特性:maxUnavailable 与 maxSurge,希望能对你在发布版本时有所帮助。


后续文章会带来 deployment controller 在多版本(replicaset)下控制滚动更新的原理,并分析其相应源码实现逻辑。


本文转载自公众号 360 云计算(ID:hulktalk)。


原文链接:


https://mp.weixin.qq.com/s/n73lMqYb5yZbpOprJdl01g


2019-12-09 10:433203

评论

发布
暂无评论
发现更多内容

软件测试 | DROP TABLE命令并不回收以前的相关访问授权

测吧(北京)科技有限公司

如何有效保障企业内部网络安全?好的方式是什么?

行云管家

运维 网络安全 堡垒机 内部安全

清华大学朱文武教授团队最新著作《图表征学习:迈向动态开放环境》重磅上市!

博文视点Broadview

第五届宁波市卫生健康系统信息化技能竞赛暨赛前培训成功举办 平凯星辰受邀授课

PingCAP

数据库 TiDB 平凯星辰

海外直播APP源码的开发给商家们带来了什么

山东布谷网络科技

App 社交娱乐 海外直播源码

软件测试 | MySQL复制的安装配置

测吧(北京)科技有限公司

测试

TiDB Serverless 正式商用,全托管的云服务带来数据管理和应用程序开发的全新体验

PingCAP

MySQL 云服务 TiDB pingCAP TiDB Serverless

解决大模型“开发难”,昇思MindSpore自动并行技术应用实践

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

FTP可能是免费且易于使用,但这就是问题所在

镭速

文件传输

基金公司最佳实践:如何用价值流分析,洞察研发效能瓶颈?

万事ONES

山歌寥哉!生产制造系统需要新治理框架

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

秒验 REST API 手机号码置换接口

MobTech袤博科技

前端 App 前端开发 前端开发工具

唐刘:TiDB 研发工程实践及 TiDB 人才观丨CCF 中国数据库暑期学校

PingCAP

数据库 TiDB pingCAP

10个学习JavaScript的理由

互联网工科生

JavaScript 学习 前端 编程语言

如何知道企业是否办理过等保备案?哪里可以查询?

行云管家

等级保护 等保测评 等保备案

零代码Demo Day大赛热烈开启,迎接挑战,赢取万元大奖!

明道云

文心一言 VS 讯飞星火 VS chatgpt (70)-- 算法导论6.5 9题

福大大架构师每日一题

福大大架构师每日一题

云渲染:为你的设计作品增添细节与逼真感!

Finovy Cloud

3D渲染 渲染 云渲染 云渲染农场

软件测试 | MySQL Cluster架构

测吧(北京)科技有限公司

测试

用友荣获信通院“铸基计划”iPaaS系列标准突出贡献单位

用友BIP

文件传输协议FTP与托管文件传输MFT有什么区别?

镭速

数据传输

代码质量把控神器:Codigger, 助您项目高效开发

知者如C

erp企业管理系统软件哪个最好用?

优秀

ERP系统 ERP软件

董事长高见|越老越青春,近两百岁的它靠什么?

新消费日报

软件测试 | REVOKE命令的漏洞

测吧(北京)科技有限公司

测试

什么是文件传输协议:文件传输协议初学者介绍

镭速

ftp 文件传输协议

陕西玖富建设工程有限公司简介

新消费日报

Kubernetes滚动更新速率控制解读_文化 & 方法_360云计算_InfoQ精选文章