• О Милвусе
  • Начать
  • Концепции
  • Руководство пользователя
  • Импорт данных
  • Инструменты искусственного интеллекта
  • Руководство по администрированию
  • Инструменты
  • Интеграции
  • Учебники
  • Вопросы и ответы
  • API Reference

Настройка горизонтального автомасштабирования (HPA) для Milvus

Обзор

Horizontal Pod Autoscaling (HPA) - это функция Kubernetes, которая автоматически регулирует количество бодов в развертывании на основе использования ресурсов, таких как процессор или память. В Milvus HPA можно применить к компонентам без статических данных, таким как proxy, queryNode, dataNode и indexNode, чтобы динамически масштабировать кластер в ответ на изменения рабочей нагрузки.

В этом руководстве рассказывается о том, как настроить HPA для компонентов Milvus с помощью Milvus Operator.

Необходимые условия

  • Работающий кластер Milvus, развернутый с помощью Milvus Operator.
  • Доступ к сайту kubectl для управления ресурсами Kubernetes.
  • Знакомство с архитектурой Milvus и Kubernetes HPA.

Настройка HPA с помощью Milvus Operator

Чтобы включить HPA в кластере Milvus, управляемом Milvus Operator, выполните следующие действия:

  1. Установите значение Replicas на -1:

    В пользовательском ресурсе Milvus (CR) установите в поле replicas значение -1 для компонента, который вы хотите масштабировать с помощью HPA. Это передаст управление масштабированием HPA, а не оператору. Вы можете редактировать CR напрямую или использовать следующую команду kubectl patch для быстрого переключения на управление HPA:

    kubectl patch milvus <your-release-name> --type='json' -p='[{"op": "replace", "path": "/spec/components/proxy/replicas", "value": -1}]'
    

    Замените <your-release-name> на имя вашего кластера Milvus.

    Чтобы убедиться, что изменения были применены, выполните команду:

    kubectl get milvus <your-release-name> -o jsonpath='{.spec.components.proxy.replicas}'
    

    Ожидаемый результат должен быть -1, подтверждающий, что компонент proxy теперь находится под управлением HPA.

    Кроме того, вы можете определить его в CR YAML:

    apiVersion: milvus.io/v1beta1
    kind: Milvus
    metadata:
      name: <your-release-name>
    spec:
      mode: cluster
      components:
        proxy:
          replicas: -1
    
  2. Define an HPA Resource:

    Создайте ресурс HPA для целевого развертывания нужного компонента. Ниже приведен пример для компонента proxy:

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: my-release-milvus-proxy-hpa
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: my-release-milvus-proxy
      minReplicas: 2
      maxReplicas: 10
      metrics:
        - type: Resource
          resource:
            name: cpu
            target:
              type: Utilization
              averageUtilization: 60
        - type: Resource
          resource:
            name: memory
            target:
              type: Utilization
              averageUtilization: 60
      behavior:
        scaleUp:
          policies:
            - type: Pods
              value: 1
              periodSeconds: 30
        scaleDown:
          stabilizationWindowSeconds: 300
          policies:
            - type: Pods
              value: 1
              periodSeconds: 60
    

    Замените my-release в metadata.name и spec.scaleTargetRef.name на фактическое имя кластера Milvus (например, <your-release-name>-milvus-proxy-hpa и <your-release-name>-milvus-proxy).

  3. Примените конфигурацию HPA:

    Разверните ресурс HPA с помощью следующей команды:

    kubectl apply -f hpa.yaml
    

    Чтобы убедиться, что HPA успешно создан, выполните команду:

    kubectl get hpa
    

    Вы должны увидеть результаты, аналогичные следующим:

    NAME                          REFERENCE                            TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
    my-release-milvus-proxy-hpa   Deployment/my-release-milvus-proxy   <some>/60%      2         10        2          <time>
    

    Поля NAME и REFERENCE будут отражать имя вашего кластера (например, <your-release-name>-milvus-proxy-hpa и Deployment/<your-release-name>-milvus-proxy).

  • scaleTargetRef: Указывает развертывание для масштабирования (например, my-release-milvus-proxy).
  • minReplicas и maxReplicas: Задает диапазон масштабирования (в данном примере от 2 до 10 стручков).
  • metrics: Настраивает масштабирование на основе использования процессора и памяти, ориентируясь на среднее использование 60 %.

Заключение

HPA позволяет Milvus эффективно адаптироваться к изменяющимся рабочим нагрузкам. Используя команду kubectl patch, вы можете быстро переключить компонент на управление HPA без ручного редактирования всего CR. Для получения более подробной информации обратитесь к документации Kubernetes HPA.

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?