概览与核心价值StatefulSet 为有状态应用提供有序部署、稳定网络标识与持久存储。通过 PVC 与 StorageClass 的组合,保障副本重建后的数据安全与服务连贯性。基本配置apiVersion: v1
kind: Service
metadata:
name: db
spec:
clusterIP: None
selector:
app: db
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: db
spec:
serviceName: db
replicas: 3
selector:
matchLabels:
app: db
template:
metadata:
labels:
app: db
spec:
containers:
- name: db
image: postgres:15
ports:
- containerPort: 5432
volumeMounts:
- name: data
mountPath: /var/lib/postgresql/data
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 20Gi
storageClassName: fast-ssd
滚动升级与有序管理有序扩缩容与滚动升级,确保副本按索引顺序处理使用 `partition` 参数进行分区发布以降低风险spec:
updateStrategy:
type: RollingUpdate
rollingUpdate:
partition: 1
参数与验证环境: Kubernetes v1.28。验证点:Headless Service 正确生成稳定 DNS 名称副本重建后数据保留在对应 PVC 中分区滚动升级期间服务可用性维持在预期阈值最佳实践为每个副本提供独立 PVC,避免数据竞争配置资源 requests 与 limits,确保调度与性能稳定根据介质能力选择合适的 StorageClass结论通过 StatefulSet 的有序管理与 PVC 持久化策略,可稳定承载有状态服务,发布与扩缩容更可控且可验证。

发表评论 取消回复