如何自动缩放舵图状态集

时间:2019-04-19 14:43:28

标签: docker kubernetes docker-compose kubernetes-helm kubernetes-pod

我已经使用舵图安装了Rabbitmq集群。 Rabbitmq使用statefulsets,是否有任何方法可以自动缩放?

还有一个问题,如何自动缩放具有PVC的HPA?

1 个答案:

答案 0 :(得分:4)

StatefulSet可以使用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-我不确定,但是我认为这取决于PVC的StorageClass的reclaimPolicy。只要确保您的StorageClass定义中有reclaimPolicy: Retain。有了它,您应该保留有关扩展事件的数据。

如果您的意思是使用HPA和PVC进行部署-应该可以,但是请始终记住,如果您的多个PVC副本具有一个共享的PVC-所有副本都将尝试挂载它。如果PVC是ReadWriteMany-应该没有问题。如果它是ReadWriteOnce-那么所有副本都将安排在一个节点上。如果节点上没有足够的资源来容纳所有副本,那么您将永远处于“待处理”状态。