写点什么

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

评论

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

点赞!TeleDB入选2024大数据星河案例!

天翼云开发者社区

云计算 大数据 云服务

从0到1只需“拖一拖”,开发时间按秒算——低代码到底有多牛

JeeLowCode低代码平台

低代码开发 低代码前端 低代码,

文献解读-Effectiveness of mRNA BNT162b2 COVID-19 vaccine up to 6 months in a large integrated health system in the USA: a retrospect

INSVAST

基因检测 临床试验 生信分析 Sentieon 变异检测

TypeScript与JavaScript的区别

秃头小帅oi

小白秒变行业专家,天润融通智能客服系统Copilot来帮忙!

天润融通

G1原理—G1回收器的分区机制

不在线第一只蜗牛

架构 JVM

见证广州地铁11号线开通:30个智慧公厕点亮城市新风貌

光明源智慧厕所

唯品会API接口深度解析:商品详情与关键词搜索的高效应用

代码忍者

垂类大模型 | 领域专家:更高维度的认知参与

澳鹏Appen

模型幻觉 垂类大模型 领域专家

沙利文公布2024企业级产品应用竞争力排名,百度智能云第一

新消费日报

预见未来,智控风险:数据驱动风险管控新范式

用友智能财务

数据处理 财会

《深入理解Mybatis原理》MyBatis数据源与连接池详解

EquatorCoco

数据库 mybatis

Java验证邮箱是否有用的实现与解析

不在线第一只蜗牛

Java 前端

官宣!通义灵码 AI 程序员全面上线

阿里巴巴云原生

阿里云 云原生 通义灵码

CAD图纸分割与布局导出功能怎么用?

在路上

cad cad看图 CAD看图王

国际认可!天翼云合规领域影响力up!

天翼云开发者社区

云计算 天翼云

官宣!通义灵码 AI 程序员全面上线

阿里云云效

阿里云 云原生 通义灵码

智慧厕所如何颠覆传统公共设施?功能与价值全面解析

光明源智慧厕所

解读ENS网络连接,面向多云多池网络的高效互联

快乐非自愿限量之名

Web 网络

智慧公厕的定义、核心功能、优势与应用场景

光明源智慧厕所

杭州铭师堂的云原生升级实践

阿里巴巴云原生

阿里云 云原生

IPv6升级改造三种技术方案优劣分析及选择

国科云

区块链项目外包开发流程

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

Python在多个Excel文件中找出缺失数据行数多的文件

快乐非自愿限量之名

Python Excel

Windows(Win10/Win11) 系统开机自启

玄兴梦影

开机自启

解读智慧厕所的环保与高效双重优势,助力可持续城市建设

光明源智慧厕所

讯飞星火办公智能体,杜绝职场人的“年会不消停”

脑极体

AI

天润融通助力一鸣食品,AI技术实现全渠道客户服务升级

天润融通

第一!天翼云全面领跑智算云服务市场

天翼云开发者社区

云计算 云服务 天翼云

中微公司发明专利再获中国专利奖殊荣

新消费日报

微店API接口详解:如何高效获取商品详情及简短代码示例

代码忍者

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