标准答案

  1. Pod 包含一个或多个共享网络命名空间、存储卷和生命周期的容器;容器通常不应被当成独立可调度单元。
  2. ReplicaSet 根据 selector 保持匹配 Pod 数量,但通常由 Deployment 创建和管理,不直接作为发布入口。
  3. Deployment 通过 ReplicaSet 管理版本和期望副本数,提供滚动发布、暂停、扩容和回滚能力。
  4. 这些对象描述期望状态,控制器持续把实际状态拉回期望状态;kubectl apply 成功不等于业务已可用。

题目解析

Pod 是调度和网络/存储共享边界,容器只是 Pod 内的进程封装;同一 Pod 内的容器共享网络命名空间和卷,因此不能把每个容器都当成独立副本。ReplicaSet 通过 selector 维持匹配 Pod 数,Deployment 再通过 ReplicaSet 管理版本和期望状态。

这些对象都是声明式控制面对象,kubectl apply 成功只说明 API Server 接受了期望状态。控制器、调度器、kubelet、探针、Service 和应用依赖还要逐层收敛,最终验收必须看业务请求和数据,而不是只看对象存在。

常见误区

  • 误区:直接手工管理 ReplicaSet 做发布。改正:把 Deployment 作为无状态发布入口,让控制器管理 ReplicaSet 历史。
  • 误区:把 Pod 当作永久服务器。改正:把 Pod 视为可替换实例,把配置、数据、流量和恢复交给相应控制器或存储。

作者信息