写点什么

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

评论

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

深度挖掘市场趋势:利用京东商品列表数据接口进行高效数据分析的技术实践

tbapi

京东商品列表数据接口

免费做ppt的网站哪个好?这个AI制作PPT神器不容错过!

职场工具箱

效率工具 职场 PPT AIGC AI生成PPT

低代码开发与项目管理工作流优化

不在线第一只蜗牛

项目管理 低代码 定制化

成为顶尖1%前端开发者的10项必备技能

伤感汤姆布利柏

豆瓣评分7.9!世界级讲师耗时5年整理出的Python学习手册!

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言

什么?!90%的ThreadLocal都在滥用或错用!

James_Shangguan

线程池 ThreadLocal #后端 Java并发编程

云手机:TikTok运营的必备工具

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 tiktok运营

YashanDB谈数据库未来出路和方向——回归商业本质 | YashanDB DTCC 2024 首秀

极客天地

RFG的崛起:从模因币到价值投资的探索

加密眼界

京东商品列表数据接口:开启电商数据洞察之门

tbapi

京东API接口 京东商品列表数据接口

IoTDB 如何有效实现磁盘 I/O 监控和优化?

Apache IoTDB

望繁信科技携手松下信息,共话制造业的数智应用之道

望繁信科技

数字化转型 流程挖掘 流程智能

探索宝可梦的世界:PokeAPI如何让开发者大展拳脚

幂简集成

掌握抖音商品详情数据接口,让你的店铺销量飙升

tbapi

抖音商品详情数据接口 抖音API

陈星汉和郭炜炜两大制作人首次同台,鸿蒙原生游戏“后发先至”

最新动态

Python中的偏函数及其广泛应用方式

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言 偏函数

it程序员常用的技术社区网站有哪些

博客趣

技术社区 博科趣 it社区 m.bokequ.com

掌握VS Code:提升前端开发效率的秘诀

秃头小帅oi

观测云对接 Pinpoint 最佳实践

观测云

Pinpoint

Python中的random模块及相关模块详解

我再BUG界嘎嘎乱杀

Python 编程 后端 random 开发语言

火山引擎联合Unity中国,共探游戏行业云计算+AI新场景

新消费日报

电商搜索革命:大模型如何重塑购物体验?| AICon

京东零售技术

LLM 企业号2024年8月PK榜

万字揭秘:助力单测提效,覆盖率八成无忧!

京东零售技术

测试 单元测试 企业号2024年8月PK榜

32个Spring JPA注解:提供全面的JPA注解应用案例(必须收藏)

肖哥弹架构

Java spring springboot 注解

XSKY 亮相中国移动智算存储论坛,共话 AI 存储创新之路

XSKY星辰天合

软件测试学习笔记丨SQL子查询实战练习

测试人

软件测试

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