能否初始创建0副本的Kubernetes StatefulSet并后续扩容?
Kubernetes StatefulSet 0副本创建与副本数更新可行性解答
完全支持创建副本数为0的StatefulSet,后续修改副本数为6、7这类数值的操作也是可行的
一、支持创建0副本的StatefulSet
- StatefulSet的
spec.replicas字段允许设置为0,这是Kubernetes原生支持的配置。创建后集群不会启动任何Pod,对应的PVC(如果配置了volumeClaimTemplates)也不会被创建,直到你将副本数调整为大于0的数值。 - 示例配置片段:
apiVersion: apps/v1 kind: StatefulSet metadata: name: example-sts spec: replicas: 0 selector: matchLabels: app: example template: metadata: labels: app: example spec: containers: - name: example-container image: nginx
二、副本数更新操作可行
- 当需要启动Pod时,直接通过命令或编辑配置修改副本数即可:
- 命令方式:
kubectl scale statefulset example-sts --replicas=6 - 编辑方式:
kubectl edit statefulset example-sts,手动将replicas值改为目标数字
- 命令方式:
- StatefulSet会按照序号顺序(从0开始)依次创建Pod,对应的PVC也会逐个生成(如果配置了
volumeClaimTemplates),完全遵循StatefulSet的有序部署特性。 - 同理,后续如果需要缩容回0,执行同样操作即可,Pod会按逆序(从最大序号开始)逐个删除,PVC默认不会被删除(除非配置了
persistentVolumeClaimRetentionPolicy)。
内容的提问来源于stack exchange,提问作者anudeep itha
相关产品推荐
相关产品推荐

