写点什么

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

评论

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

云工作流 CloudFlow 重磅发布,流程式开发让云上应用构建更简单

阿里巴巴云原生

阿里云 云原生

联想算力基础设施的“火种台”,让千行万企智能化不再凛冽

脑极体

AI 算力

一款外置MOS开关降压型 LED 恒流控制器应用方案

芯动大师

慢调用链诊断利器-ARMS 代码热点

阿里巴巴云原生

阿里云 云原生 可观测

Koordinator 支持 K8s 与 YARN 混部,小红书在离线混部实践分享

阿里巴巴云原生

阿里云 开源 云原生

质量核心

玄兴梦影

质量 质量指标

语音数据集在智能客服系统中的应用与挑战

来自四九城儿

华为天气发起‘暖冬计划’,暖人更暖心

最新动态

EDAS 让 Spring Cloud Gateway 生产可用的二三策

阿里巴巴云原生

阿里云 云原生 EDAS

续写“敢为”新篇章,TCL实业即将重磅亮相CES 2024

Geek_2d6073

Sobit:将BRC20资产桥接到Solana ,加速铭文市场的火热

大瞿科技

零代码助力服装行业数字化转型

明道云

面对大促场景来临,如何从容进行性能测试

阿里巴巴云原生

阿里云 云原生 压测

通过 Higress Wasm 插件 3 倍性能实现 Spring-cloud-gateway 功能

阿里巴巴云原生

阿里云 云原生

Sobit:将BRC20资产桥接到Solana ,加速铭文市场的火热

石头财经

Autogen4j: the Java version of Microsoft AutoGen

HamaWhite

agent openai LLM

Confluent 与阿里云将携手拓展亚太市场,提供消息流平台服务

阿里巴巴云原生

阿里云 云原生

SAE 2.0,让容器化应用开发更简单

阿里巴巴云原生

阿里云 Serverless 云原生

KubeWharf的使用指南与学习总结

Geek-yan

构建数字化金融生态系统:云原生的创新方法

明道云

华为用户专享:冬至特辑带来沉浸式影音娱乐体验

最新动态

边缘智变:深度学习引领下的新一代计算范式

小王撤了

边缘计算

Sobit:将BRC20资产桥接到Solana ,加速铭文市场的火热

BlockChain先知

阿里云 ARMS 应用监控重磅支持 Java 21

阿里巴巴云原生

Java 阿里云 云原生

全球首款容器计算产品重磅发布,激活上云用云新范式

阿里巴巴云原生

阿里云 云原生 ACS

语音数据集在智能语音助手中的应用与挑战

来自四九城儿

2023年末的市场,20Exchange第一轮空投延续铭文热

股市老人

Hago 的 Spark on ACK 实践

阿里巴巴云原生

阿里云 云原生

2024年度AI大模型趋势解读

AI 大模型

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