写点什么

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

评论

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

通义灵码怎么样?分为哪些版本,看看基础能力多少分?

阿里巴巴云原生

阿里云 云原生 通义灵码

通义灵码怎么样?分为哪些版本,看看基础能力多少分?

阿里云云效

阿里云 云原生 通义灵码

答应我,在vue中不要滥用watch好吗?好的

不在线第一只蜗牛

前端 Vue 3

MacTalk 测评通义灵码,如何实现“微信表情”小功能?

阿里云云效

阿里云 云原生 通义灵码

IPv6的优势分析

天翼云开发者社区

ipv6

基于 RocketMQ 的云原生 MQTT 消息引擎设计

阿里巴巴云原生

阿里云 RocketMQ 云原生

NFC碰一碰刷卡、AI功能……2024年大学生都在关注手机哪些功能?

最新动态

大学生必备!华为手机校园智慧锦囊,一机在手,万事无忧

最新动态

地信领域最高奖!YashanDB首获2024地理信息科技进步奖一等奖

极客天地

海外网络加速方案:解决海外访问难题

Ogcloud

网络加速 海外网络加速 企业网络加速 网络加速服务

以太坊基金会AMA总结:面对ETH价格疲软,团队的应对策略与展望

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

低代码提升开发能力的思路

伤感汤姆布利柏

奇绩创坛 2025 春季创业营开始报名

奇绩创坛

奇绩创坛 奇绩创坛创业营

跨越山海,台湾媒体点赞《黑神话:悟空》云游戏服务

轶天下事

台媒报道:华为云携手赞奇科技 推出《黑神话:悟空》专属云游戏服务

轶天下事

第八届未来网络发展大会在宁召开,天翼云“息壤”助力算力互联互通一体化调度!

天翼云开发者社区

云计算 网络安全 网络发展大会

​共筑国产数据库新生态!YashanDB与华瑞指数云ExponTech达成战略合作

极客天地

美联储降息在即:加密市场风云再起,机遇与挑战并存

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

万界星空科技MES系统生产过程控制功能详解

万界星空科技

工业互联网 制造业 mes 万界星空科技 生产管理MES系统

【YashanDB知识库】主备延迟故障分析方法

YashanDB

yashandb 崖山数据库

StarRocks Lakehouse 快速入门——Apache Iceberg

StarRocks

Apache 数据湖 iceberg

MacTalk 测评通义灵码,如何实现“微信表情”小功能?

阿里巴巴云原生

阿里云 云原生 通义灵码

开箱即用,AISBench测试展示英特尔至强处理器的卓越推理性能

E科讯

云行| 云端释放“黔”力,天翼云赋能贵州“智”变!

天翼云开发者社区

人工智能 云计算 大数据

ping命令使用及其常用参数

天翼云开发者社区

ping

服务稳定性保障的五大误解

巴辉特

运维 SRE 服务稳定性建设 服务稳定性保障

从CSM到A-CSM:不断提升的探索之路

ShineScrum

西游再现!一键部署 Flux 文生图大模型生成西游人物

阿里巴巴云原生

阿里云 云原生

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