AWS环境下Kubernetes StatefulSet存储问题及Pod自动扩缩容咨询
二、StatefulSet是否支持自动扩缩容?
当然支持!不过要注意一些有状态应用的特殊限制:
1. 手动扩缩容
直接用命令或者修改StatefulSet的spec.replicas字段就行:
# 手动扩缩容到3个副本 kubectl scale statefulset web2 --replicas=3
2. 自动扩缩容(HPA)
从Kubernetes 1.16版本开始,HorizontalPodAutoscaler(HPA)可以直接对StatefulSet进行自动扩缩容。比如创建一个基于CPU利用率的HPA:
apiVersion: autoscaling/v2beta2 kind: HorizontalPodAutoscaler metadata: name: web2-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: StatefulSet name: web2 minReplicas: 2 maxReplicas: 5 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70
3. 注意事项
- 缩容顺序:StatefulSet会按逆序删除Pod(从最高序号到最低),对应的PVC默认不会被删除,需要手动清理。
- 应用层集群配置:比如MongoDB这类有状态数据库,单纯的Kubernetes扩缩容只是创建Pod和卷,不会自动把新节点加入副本集,需要你手动配置或者用MongoDB Operator来管理。
- PV回收:缩容时PVC会保留,PV的回收取决于StorageClass的
reclaimPolicy:默认是Retain(需要手动删除PV),如果设置为Delete,删除PVC后PV会被自动删除。
内容的提问来源于stack exchange,提问作者Raju
相关产品推荐
相关产品推荐

