StatefulSets можно автоматически масштабировать с помощью HPA:
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
annotations:
name: some-service
spec:
maxReplicas: 4
metrics:
- resource:
name: memory
targetAverageUtilization: 80
type: Resource
- resource:
name: cpu
targetAverageUtilization: 80
type: Resource
minReplicas: 2
scaleTargetRef:
apiVersion: apps/v1
kind: StatefulSet
name: some-service
Что касается PVC, StatefulSets и HPA - я не уверен, но думаю, что это зависит от reclaimPolicy StorageClass вашего PVC.Просто убедитесь, что у вас есть reclaimPolicy: Retain
в вашем определении StorageClass.Имея это, вы должны сохранить данные о событиях масштабирования.
Если вы имеете в виду Развертывания с HPA и PVC - это должно работать, но всегда помните, что если у вас есть несколько реплик с одним общим PVC - все реплики будут пытаться его смонтировать,Если PVC - это ReadWriteMany - проблем не должно быть.Если это ReadWriteOnce - тогда все реплики будут запланированы на одном узле.Если на узле недостаточно ресурсов для размещения всех реплик, вы получите несколько модулей в состоянии ожидания навсегда.