Как автоматически масштабировать наборы состояний Helm Chart

Я установил кластер rabbitmq с помощью Helm Chart. Rabbitmq использует наборы состояний, есть ли способ автоматически масштабировать это?

Еще один вопрос, как развернуть автоматическое масштабирование (HPA) с PVC?


person Harsh Manvar    schedule 19.04.2019    source источник


Ответы (1)


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 of StorageClass вашего PVC. Просто убедитесь, что у вас есть reclaimPolicy: Retain в определении StorageClass. Имея это, вы должны сохранить данные о масштабировании событий.

Если вы имеете в виду развертывания с HPA и PVC - это должно работать, но всегда помните, что если у вас есть несколько реплик с одним общим PVC - все реплики будут пытаться его смонтировать. Если PVC - это ReadWriteMany - проблем быть не должно. Если это ReadWriteOnce - то все реплики будут запланированы на одном узле. Если на узле недостаточно ресурсов для размещения всех реплик - вы навсегда получите несколько модулей в состоянии ожидания.

person Vasili Angapov    schedule 19.04.2019
comment
Большое спасибо за ваш ответ, поэтому, если из-за памяти и процессора HPA увеличивает количество модулей ... так что с наборами состояний, если подключен ПВХ, как это работает - person Harsh Manvar; 19.04.2019
comment
StatefulSets немного отличается от Deployments - они могут использовать volumeClaimTemplates. Это означает, что каждая реплика StatefulSet будет иметь свой собственный PVC. Подробнее читайте здесь: kubernetes.io/docs / tutorials / stateful-application / - person Vasili Angapov; 19.04.2019
comment
Спасибо, я абсолютно понял, еще раз спасибо за то, что написал четкое и простое определение. - person Harsh Manvar; 19.04.2019
comment
Есть ли способ автоматического масштабирования диаграмм руля? Например, я использую диаграмму управления rabbitmq, которая создает 3 модуля с сохранением состояния. У каждого свой ПВХ - person Harsh Manvar; 19.04.2019
comment
Да, например, есть ли какой-либо вариант, который мы можем реализовать прямой HPA на всей диаграмме управления или что-то еще - person Harsh Manvar; 19.04.2019
comment
Диаграмма Helm - это не более чем набор шаблонных манифестов Kubernetes. Вы можете включить манифест HPA для StatefulSet, это на 100% возможно и на самом деле довольно просто. Но вы не можете масштабировать диаграмму Helm в целом. - person Vasili Angapov; 19.04.2019
comment
Хорошо, спасибо, ты так много ответов и помог мне - person Harsh Manvar; 19.04.2019
comment
Разве это не проблема? да, вы увеличиваете rabbitmq, но что произойдет, когда HPA решит уменьшить масштаб? у вас останутся недоступные узлы .. - person ArielB; 12.07.2019