Docker 如何自动缩放舵图状态集

Docker 如何自动缩放舵图状态集,docker,kubernetes,docker-compose,kubernetes-helm,kubernetes-pod,Docker,Kubernetes,Docker Compose,Kubernetes Helm,Kubernetes Pod,我已经使用helm图表安装了rabbitmq集群。Rabbitmq使用statefulsets,那么有什么方法可以自动缩放它吗 还有一个问题是,如何使用PVC自动缩放(HPA)部署 状态集可以使用HPA自动缩放: apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: annotations: name: some-service spec: maxReplicas: 4 metrics:

我已经使用helm图表安装了rabbitmq集群。Rabbitmq使用statefulsets,那么有什么方法可以自动缩放它吗


还有一个问题是,如何使用PVC自动缩放(HPA)部署

状态集可以使用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回收政策。只要确保在StorageClass定义中有
回收策略:Retain
。这样,您应该保留缩放事件的数据


如果您的意思是使用HPA和PVC部署—应该可以,但请始终记住,如果您有多个副本使用一个共享PVC—所有副本都将尝试装载它。如果PVC是ReadWriteMany-应该没有问题。如果是ReadWriteOnce,则所有副本都将安排在一个节点上。如果节点上没有足够的资源来容纳所有副本-您将得到一些永久处于挂起状态的pod。

非常感谢您的回答,因此如果由于内存和cpu的原因,HPA增加了pod的数量…因此,如果连接了状态集,则状态集的工作方式与部署略有不同-它们可以使用volumeClaimTemplates。这意味着StatefulSet的每个副本都有自己的PVC。在这里阅读更多:谢谢,我完全明白了,再次感谢你写的清晰易懂的定义。有没有办法自动缩放舵图?就像我在使用rabbitmq头盔图表,它创建了3个状态集吊舱。每一个都有自己的PVCY,比如有没有任何选项可以在整个舵图或任何东西上实现直接HPA