AI 助教问 AI 助教
东方瑞通 · CKA

ReplicaSet与Deployment控制器

ReplicaSet 维护指定数量的 Pod 副本;Deployment 在其上提供声明式更新、滚动发布与回滚能力,是管理无状态应用的首选控制器。

考点精讲

  1. ReplicaSet 和 Deployment 是管理无状态应用的核心控制器。ReplicaSet 的职责是保证任意时刻有指定数量的相同 Pod 副本在运行(多了删、少了补)。Deployment 在 ReplicaSet 之上提供了声明式更新能力:滚动更新、版本记录与一键回滚,是生产环境管理无状态应用的首选。日常操作中,用户几乎不直接操作 ReplicaSet,而是通过 Deployment 间接管理。发布管理用 rollout 系列命令:kubectl rollout status 查看发布进度、kubectl rollout history 查看历史版本、kubectl rollout undo 回滚到上一版本。更新策略有 RollingUpdate(默认,滚动替换)和 Recreate(先删后建、会短暂停机)两种。

记忆技巧

Deployment 是经理,ReplicaSet 是带班组长
更新回滚用 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控制器

AI 助教

让 AI 助教带你深入学习,把你卡住的地方直接问它

随时为您答疑解惑

开始答疑