考点精讲
- ReplicaSet 和 Deployment 是管理无状态应用的核心控制器。ReplicaSet 的职责是保证任意时刻有指定数量的相同 Pod 副本在运行(多了删、少了补)。Deployment 在 ReplicaSet 之上提供了声明式更新能力:滚动更新、版本记录与一键回滚,是生产环境管理无状态应用的首选。日常操作中,用户几乎不直接操作 ReplicaSet,而是通过 Deployment 间接管理。发布管理用 rollout 系列命令:kubectl rollout status 查看发布进度、kubectl rollout history 查看历史版本、kubectl rollout undo 回滚到上一版本。更新策略有 RollingUpdate(默认,滚动替换)和 Recreate(先删后建、会短暂停机)两种。
记忆技巧
Deployment 是经理,ReplicaSet 是带班组长
更新回滚用 rollout undo
更新回滚用 rollout undo
常见误区
- 直接改 ReplicaSet 更新应用(应改 Deployment)
- 滚动更新中新旧版本并存导致流量不一致
- 误用 Recreate 策略导致停机
真题思路
- 【示例】本页题目为教学模拟题,非真题,仅用于讲解答题思路 某 Deployment 更新镜像后出现故障,最快的恢复方式是?
删除整个 Deployment 重新创建 kubectl rollout undo deployment/<名称> 重启所有节点 手动改 ReplicaSet
答案:B
解析:rollout undo 可快速回滚到上一版本,是标准的回滚手段;删除重建、重启节点、改 ReplicaSet 都不是最佳实践。
常见问题
Q:能直接改 ReplicaSet 更新应用吗
A:不建议,应改 Deployment,让 Deployment 创建新 ReplicaSet 完成滚动更新。
Q:怎么回滚一次失败的发布
A:kubectl rollout undo deployment/<名称> 回滚到上一版本。
Q:Recreate 和 RollingUpdate 的区别
A:Recreate 先删后建、会短暂停机;RollingUpdate 滚动替换、不中断服务。
相关知识
教材出处:第8章 Kubernetes常用的控制器 ReplicaSet与Deployment控制器