写点什么

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:433463

评论

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

YashanDB数据库的多语言支持及其应用

数据库砖家

绿电直连平台层核心能力:数据中台构建与算力协同技术

西格电力

绿电直连 可再生能源发电 低碳经济 能源解决方案 低碳节能

大数据-151 Apache Druid 集群落地 [上篇] MySQL 元数据 + HDFS 深存与低配调优

武子康

Java 大数据 分布式 Druid Apache Druid

哈尔滨等保整改方案:基于2025年新规的精准落地策略

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

5大关键功能解析:YashanDB数据库的独特优势

数据库砖家

5个必须知道的YashanDB数据库关键功能

数据库砖家

YashanDB数据库的关键技术栈及组成部分

数据库砖家

6个关键步骤帮你实现YashanDB数据库迁移

数据库砖家

2025年量子计算与通信技术国际学术会议(ICQCT 2025)

搞科研的小刘

量子计算

深化产教融合,共育数字人才!华为云HCSD校园沙龙活动走进湖北工程学院

华为云开发者联盟

第五届教育,语言与艺术国际学术会议(ICELA 2025)

搞科研的小刘

教育语言艺术

YashanDB数据库的无缝集成方法与实践

数据库砖家

“看得见”的工厂—MES数据采集技术全景图

万界星空科技

mes 免费mes 万界星空科技mes 制造业工厂 #数据采集

第八届机械工程与智能制造国际会议(WCMEIM 2025)

搞科研的小刘

工程机械

5步教你进行YashanDB数据库的高效备份

数据库砖家

第二届自动化、电气控制系统与设备国际学术会议(AECSE 2025)

搞科研的小刘

自动化

YashanDB数据库的技术架构解析与最佳实践

数据库砖家

YashanDB数据库的灵活性与适应性:行业分析报告

数据库砖家

LED显示屏节能技术有哪些?

Dylan

LED LED display LED显示屏 户外LED显示屏 LED屏幕

私有部署|基于Ansible的运维自动化作业平台

37丫37

5大常见问题解答:关于YashanDB数据库的疑虑

数据库砖家

YashanDB数据库的操作界面及其用户体验分析

数据库砖家

YashanDB数据库的多样化应用及成功故事

数据库砖家

YashanDB数据库的扩展方法与性能提升策略

数据库砖家

Agentic AI基础设施实践经验系列(七):可观测性在Agent应用的挑战与实践

亚马逊云科技 (Amazon Web Services)

人工智能

黑龙江三级等保测评费用解析:2025年市场价与关键影响因素

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

2025年YashanDB数据库技术展望与发展方向

数据库砖家

牡丹江二级等保测评周期解析:流程、时间与关键节点

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

2025十大数据资产管理平台排行榜:技术革新与选型指南

科技经济

规范驱动开发:用 AI 写生产级代码的完整指南

程序猿DD

vibe coding spec coding

第二届人工智能、数字媒体技术与交互设计国际学术会议(ICADI 2025)

搞科研的小刘

人工智能

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