使用 Deployment 声明式更新应用及有状态 Pod 的复制
1. Deployment 的滚动更新机制
在使用 Deployment 进行应用更新时,涉及到一些重要的属性,如 maxSurge 和 maxUnavailable 。当期望的副本数为 3,且允许 1 个副本不可用时,滚动更新过程会立即删除 1 个 Pod 并创建 2 个新的 Pod。这样做能确保始终有 2 个 Pod 可用,同时不会超过最大 Pod 数量(这里最大数量为 4,即 3 个期望副本加上 maxSurge 的 1 个)。当 2 个新 Pod 可用后,再删除剩余的 2 个旧 Pod。
需要注意的是, maxUnavailable 是相对于期望副本数而言的。例如期望副本数为 3, maxUnavailable 设为 1,意味着更新过程必须始终保证至少 2 个(3 - 1)Pod 可用,而不可用的 Pod 数量可能会超过 1 个。
2. 暂停和恢复 Deployment 滚动更新
- 暂停滚动更新 :在应用更新过程中,可能会遇到需要谨慎处理新版本的情况。比如之前应用的 v3 版本出现问题,现在修复了 bug 并推出 v4 版本。为了降低风险,可以采用金丝雀发布(Canary Release)的方式。具体操作如下:
- 触发滚动更新:
$ ku
超级会员免费看
订阅专栏 解锁全文
17

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



