结论:Deployment 管理无状态应用,Pod 可互换(随机命名、共享或无存储、任意替换);StatefulSet 管理有状态应用,提供稳定的网络标识(有序 Pod 名)、稳定存储(每 Pod 独立 PVC)和有序的部署、扩缩、删除。

展开:Deployment 通过 ReplicaSet 实现副本管理,Pod 名带随机哈希,任何副本都能服务任何请求,配合普通 Service 负载均衡即可,适合 Web 服务、API 网关等无状态场景。StatefulSet 三个稳定:1)稳定身份:Pod 名形如 web-0、web-1,重建后名字不变;2)稳定网络:配合 Headless Service(clusterIP: None)得到 pod-0.svc-name 的 DNS 记录,适合主从架构中固定寻址;3)稳定存储:volumeClaimTemplates 为每个 Pod 创建独立 PVC,Pod 删除 PVC 默认保留。此外 StatefulSet 默认按序滚动(OrderedReady),0 号先起,倒序缩容,适合数据库集群、Kafka、Elasticsearch 这类对成员身份敏感的场景。易错点:StatefulSet 不解决应用层数据复制,主从同步、选主仍需应用或 Operator 自己实现;存储类若无动态供给,PVC 会一直 Pending。现在生产更多用 Operator(如 CloudNativePG)而非裸 StatefulSet 管数据库。