首页/云/云与容器速查/ReplicaSet 与控制器层级
Kubernetes68 条

ReplicaSet 与控制器层级

ReplicaSet 保证指定数量的同质 Pod 运行:无发布能力,只负责『数量守恒』。它是 Deployment 的执行层——日常不手工维护 RS,理解层级即可看懂故障现象。

云与容器速查云更新于 2026-10-13

ReplicaSet 是什么

ReplicaSet 是副本守恒器:它保证指定数量的同质 Pod 同时在运行,少了创建、多了删除,自身不具备版本概念与发布能力。日常不会直接维护它,因为 Deployment 把它当作执行层使用:改一次 Pod 模板,Deployment 就新建一个 ReplicaSet,由新旧两代副本数的加减完成滚动更新。看懂这层结构,才能解释清楚副本数为什么会自己变回去、旧对象为什么还留着。

基本信息

关键字段replicas 副本数、selector 匹配哪些 Pod、template 生成 Pod 的模板
归属关系由 Deployment 创建,通过 ownerReferences 标记从属
命名规则Deployment 名 + 模板哈希 + 随机后缀,哈希变了就是换了模板
历史保留受 Deployment 的 revisionHistoryLimit 控制,默认 10 代
回滚rollout undo 把副本还给旧 ReplicaSet,不需要重建对象
查看kubectl get rs 的 DESIRED/CURRENT/READY 三列最直观

典型使用场景

  • 看懂 Deployment 三层结构:Deployment 管版本、ReplicaSet 管数量、Pod 跑负载
  • 滚动更新期间确认新旧两代是否按预期加减副本
  • 排查“副本数被莫名改回”,确认是控制器对账而非人为操作
  • 确认旧 ReplicaSet 保留 0 副本的用途,避免误删影响回滚
  • 清理历史对象释放 etcd 空间:调整 revisionHistoryLimit

查看层级

查看层级
kubectl get deploy,rs,pods -l app=web   # 一次看清三层结构
kubectl get rs -l app=web -o wide   # 看新旧两代的期望与实际副本
kubectl describe rs web-7f9d8c5b4 | head -20   # 看事件与从属关系
kubectl get rs web-7f9d8c5b4 -o jsonpath='{.metadata.ownerReferences[0].name}'   # 确认父对象
kubectl rollout undo deploy/web --to-revision=2   # 回滚=把副本还给旧 ReplicaSet

输出逐列读法

列含义正常/异常
DESIRED期望副本数与 CURRENT 长期不一致且无事件,说明调度受阻
CURRENT实际存在的副本数高于 DESIRED 通常是在缩容过程中
READY通过就绪探针的数量长期低于 CURRENT,去查探针与容器日志
AGE对象存活时长出现很新的对象说明刚发布过或刚扩过容
手工改 ReplicaSet 的副本数没有意义:Deployment 下一轮对账就会改回去,应该改 Deployment。
判断发布是否成功看 Deployment 的可用副本与 rollout status,而不是看 ReplicaSet 的 READY:ReplicaSet 只代表副本存在。
旧 ReplicaSet 保留 0 副本不是垃圾:它携带旧版 Pod 模板,rollout undo 时把副本还给它即可完成回滚,删掉就等于放弃这一代回滚点。

易错点

  • 手工 scale ReplicaSet:Deployment 立刻纠偏,白改一场还容易误判成集群异常
  • 直接删 ReplicaSet:级联删除其下所有 Pod,动作远超预期,操作前先看 ownerReferences
  • 无限保留历史 ReplicaSet:对象数量与 etcd 压力持续上升,需调小 revisionHistoryLimit
  • 把 ReplicaSet 当发布单元:没有版本与回滚语义,出问题无处可退
  • 手工新建 ReplicaSet 接管流量:Pod 标签与 Service 选择器一旦重叠,两代副本会互相抢建删

数据来源与参考

  • Kubernetes Docs:ReplicaSet

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌