Kubernetes滚动更新实战指南
1. 问题与解决方案
在Kubernetes中,当运行中的复制控制器(Replication Controller,简称RC)所使用的Docker镜像或控制器规范发生更新时,如果直接删除旧的RC并创建新的RC,会导致应用不可用。而持续部署(Continuous Deployment)是DevOps和敏捷软件开发的最佳实践之一,其目标是尽量缩短新应用发布/构建与在生产环境中使用之间的前置时间。
Kubernetes提供了滚动更新机制,在更新过程中,旧版本RC的Pod会通过“优雅终止”机制逐个关闭,同时新控制器的Pod会逐个启动。“优雅终止”机制允许容器在被终止前有一段可配置的时间进行回调,以便容器能够优雅地关闭,即持久化容器的内存状态并关闭打开的连接。
滚动更新的过程如下:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([开始]):::startend --> B(RC1有3个Pod, RC2有0个Pod):::process
B --> C(RC1有2个Pod, RC2有1个Pod):::process
C --> D(RC1有1个Pod, RC2有2个Pod):::process
D --> E(RC1有0个Pod, RC2有3个Pod):::process
超级会员免费看
订阅专栏 解锁全文
7万+

被折叠的 条评论
为什么被折叠?



