首页/云/Kubernetes 速查/StatefulSet 基础与稳定标识

StatefulSet 基础与稳定标识

为有状态应用提供稳定的 Pod 名称、网络标识与独立存储:副本按序创建/删除,适合数据库、队列、协调服务等。

Kubernetes 速查云更新于 2026-10-12

StatefulSet 清单

StatefulSet 清单
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: db
spec:
  serviceName: db-headless     # 关联的 Headless Service,提供稳定 DNS
  replicas: 3
  selector:
    matchLabels:
      app: db
  template:
    metadata:
      labels:
        app: db
    spec:
      containers:
        - name: db
          image: postgres:16.2
          volumeMounts:
            - name: data
              mountPath: /var/lib/postgresql/data
  volumeClaimTemplates:
    - metadata:
        name: data
      spec:
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: 20Gi

日常操作

日常操作
kubectl get sts db -o wide
kubectl get pods -l app=db -w          # 观察 db-0 → db-1 → db-2 顺序
kubectl scale sts/db --replicas=3
Pod 名为 <sts名>-<序号>(db-0、db-1…),重建后名字不变、PVC 不变;删除 STS 默认不删 PVC。

易错点

  • 有状态服务的启动顺序与主从角色强相关,扩缩容前确认应用自身能处理节点加入/离开
  • 默认按序启动(0 起),就绪判断和探针配置错误会让后继 Pod 一直不创建

数据来源与参考

  • Kubernetes 官方文档 · StatefulSets
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌