写点什么

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

评论

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

代码的艺术-Writing Code Like a Pianist

京东科技开发者

第七在线出席CFCG全国时尚消费品行业CIO年会荣获最佳供应商奖项

第七在线

ETLCloud:实现数据库快速输入输出的利器

RestCloud

数据同步 ETL

什么是数字化,什么是数字化转型?有什么区别和联系?

优秀

数字化转型 数字化

Kmesh v0.1.0 版本发布

华为云开发者联盟

开发 华为云 华为云开发者联盟 Kmesh

【教程】iOS Swift应用加固

雪奈椰子

如何在不影响业务的前提下执行大批量数据变更操作?

NineData

sql 数据 dba DML 阻塞

带你熟悉NLP预训练模型:BERT

华为云开发者联盟

人工智能 华为云 语言模型 华为云开发者联盟

adobe pdf下载破解版 内置Acrobat pro Dc 2023激活补丁

Rose

PDF编辑 Adobe Acrobat Pro DC下载 Adobe Acrobat Pro DC破解

最常用的4种光纤接口结构

小齐写代码

开发第一个Flutter App需要注意什么

FN0

flutter

百度营销共拓开放平台全新上线,全链路共建AIGC营销新图景

科技热闻

容器技术-Docker_安装&操作

测试人

软件测试

QAnything本地知识库问答系统:基于检索增强生成式应用(RAG)两阶段检索、支持海量数据、跨语种问答

汀丶人工智能

搜索推荐 LLM模型 智能问答 rag

如何写好大模型提示词?来自大赛冠军的经验分享(进阶篇)

Baihai IDP

程序员 AI LLM 白海科技 Prompt Engineering

前端JS加密与Buspsuite的坦诚相待

权说安全

网络安全

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