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

Запуск Milvus с поддержкой GPU с помощью Helm Chart

На этой странице показано, как запустить экземпляр Milvus с поддержкой GPU с помощью Helm Chart.

Обзор

Helm использует формат упаковки, называемый «чартами». Чарт представляет собой набор файлов, описывающих связанный набор ресурсов Kubernetes. Milvus предоставляет набор чартов, которые помогут вам развернуть зависимости и компоненты Milvus. Чарт Helm для Milvus — это решение, которое инициирует развертывание Milvus в кластере Kubernetes (K8s) с помощью менеджера пакетов Helm.

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

Если у вас возникнут проблемы с загрузкой образа, свяжитесь с нами по адресу community@zilliz.com, указав подробности проблемы, и мы предоставим вам необходимую поддержку.

Установите Helm Chart для Milvus

Helm — это менеджер пакетов K8s, который поможет вам быстро развернуть Milvus.

  1. Добавьте репозиторий Helm для Milvus.
$ helm repo add milvus https://zilliztech.github.io/milvus-helm/

Репозиторий Helm-чартов Milvus по адресу https://milvus-io.github.io/milvus-helm/ был заархивирован, и вы можете получать дальнейшие обновления с сайта https://zilliztech.github.io/milvus-helm/ следующим образом:

helm repo add zilliztech https://zilliztech.github.io/milvus-helm
helm repo update
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus

Архивированный репозиторий по-прежнему доступен для диаграмм версий до 4.0.31. Для более поздних выпусков используйте новый репозиторий.

  1. Обновите диаграммы локально.
$ helm repo update

Запуск Milvus

После установки диаграммы Helm вы можете запустить Milvus в Kubernetes. В этом разделе мы расскажем, как запустить Milvus с поддержкой GPU.

Запускать Milvus с помощью Helm следует, указав имя релиза, чарт и параметры, которые вы планируете изменить. В данном руководстве в качестве имени релиза используется « my-release ». Чтобы использовать другое имя релиза, замените « my-release » в приведенных ниже командах на используемое вами.

Milvus позволяет назначить одно или несколько GPU-устройств для работы с Milvus.

1. Назначение одного устройства GPU

Milvus с поддержкой GPU позволяет назначить одно или несколько устройств GPU.

  • Кластер Milvus

    cat <<EOF > custom-values.yaml
    dataNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
    queryNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
    EOF
    
    $ helm install my-release milvus/milvus -f custom-values.yaml
    
  • Автономная версия Milvus

    cat <<EOF > custom-values.yaml
    standalone:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
    EOF
    
    $ helm install my-release milvus/milvus --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false -f custom-values.yaml
    

2. Назначение нескольких графических процессоров

Помимо одного устройства GPU, вы также можете назначить Milvus несколько устройств GPU.

  • Кластер Milvus

    cat <<EOF > custom-values.yaml
    dataNode:
      resources:
        requests:
          nvidia.com/gpu: "2"
        limits:
          nvidia.com/gpu: "2"
    queryNode:
      resources:
        requests:
          nvidia.com/gpu: "2"
        limits:
          nvidia.com/gpu: "2"
    EOF
    

    В приведенной выше конфигурации доступно четыре процессора (CPU), и каждый узел dataNode и queryNode использует по два графических процессора (GPU). Чтобы назначить разные графические процессоры для узлов dataNode и queryNode, можно соответствующим образом изменить конфигурацию, установив параметр « extraEnv » в файле конфигурации следующим образом:

    cat <<EOF > custom-values.yaml
    dataNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
      extraEnv:
        - name: CUDA_VISIBLE_DEVICES
          value: "0"
    queryNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
      extraEnv:
        - name: CUDA_VISIBLE_DEVICES
          value: "1"
    EOF
    
    $ helm install my-release milvus/milvus -f custom-values.yaml
    
    • Имя релиза должно содержать только буквы, цифры и дефисы. Точки в имени релиза не допускаются.
    • По умолчанию при установке Milvus с помощью Helm устанавливается кластерная версия Milvus. При установке автономной версии Milvus требуется дополнительная настройка.
    • Согласно руководству по миграции устаревших API Kubernetes, версия API policy/v1beta1 для PodDisruptionBudget больше не поддерживается начиная с версии v1.25. Рекомендуется перенести манифесты и API-клиенты на использование версии API policy/v1.
      В качестве обходного решения для пользователей, которые по-прежнему используют версию API policy/v1beta1 для PodDisruptionBudget в Kubernetes версии 1.25 и более поздних, можно вместо этого выполнить следующую команду для установки Milvus:
      helm install my-release milvus/milvus --set pulsar.bookkeeper.pdb.usePolicy=false,pulsar.broker.pdb.usePolicy=false,pulsar.proxy.pdb.usePolicy=false,pulsar.zookeeper.pdb.usePolicy=false
    • Дополнительную информацию см. в документации по Helm-чарту Milvus и Helm.
  • Автономная версия Milvus

    cat <<EOF > custom-values.yaml
    dataNode:
      resources:
        requests:
          nvidia.com/gpu: "2"
        limits:
          nvidia.com/gpu: "2"
    queryNode:
      resources:
        requests:
          nvidia.com/gpu: "2"
        limits:
          nvidia.com/gpu: "2"
    EOF
    

    В приведенной выше конфигурации доступно четыре процессора (CPU), и каждый узел dataNode и queryNode использует по два графических процессора (GPU). Чтобы назначить разные графические процессоры для узлов dataNode и queryNode, можно соответствующим образом изменить конфигурацию, установив параметр extraEnv в конфигурационном файле следующим образом:

    cat <<EOF > custom-values.yaml
    dataNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
      extraEnv:
        - name: CUDA_VISIBLE_DEVICES
          value: "0"
    queryNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
      extraEnv:
        - name: CUDA_VISIBLE_DEVICES
          value: "1"
    EOF
    
    $ helm install my-release milvus/milvus --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false -f custom-values.yaml
    

2. Проверка состояния Milvus

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

$ kubectl get pods

После запуска Milvus в столбце « READY » для всех под (pods) отображается значение « 1/1 ».

  • Кластер Milvus

    NAME                                             READY  STATUS   RESTARTS  AGE
    my-release-etcd-0                                  1/1     Running     0             3m24s
    my-release-etcd-1                                  1/1     Running     0             3m24s
    my-release-etcd-2                                  1/1     Running     0             3m24s
    my-release-milvus-datanode-698dbf7d77-rjkkq        1/1     Running     0             3m24s
    my-release-milvus-mixcoord-856d666559-rpj8z        1/1     Running     0             3m24s
    my-release-milvus-proxy-7f7cf47689-pzltw           1/1     Running     0             3m24s
    my-release-milvus-querynode-7fb6d5b5f8-92phj       1/1     Running     0             3m24s
    my-release-milvus-streamingnode-5867bfbcbf-cg9xx   1/1     Running     0             3m24s
    my-release-minio-0                                 1/1     Running     0             3m24s
    my-release-minio-1                                 1/1     Running     0             3m24s
    my-release-minio-2                                 1/1     Running     0             3m24s
    my-release-minio-3                                 1/1     Running     0             3m24s
    my-release-pulsarv3-bookie-0                       1/1     Running     0             3m24s
    my-release-pulsarv3-bookie-1                       1/1     Running     0             3m24s
    my-release-pulsarv3-bookie-2                       1/1     Running     0             3m24s
    my-release-pulsarv3-bookie-init-p8hcq              0/1     Completed   0             3m24s
    my-release-pulsarv3-broker-0                       1/1     Running     0             3m24s
    my-release-pulsarv3-broker-1                       1/1     Running     0             3m24s
    my-release-pulsarv3-proxy-0                        1/1     Running     0             3m24s
    my-release-pulsarv3-proxy-1                        1/1     Running     0             3m24s
    my-release-pulsarv3-pulsar-init-8kjsj              0/1     Completed   0             3m24s
    my-release-pulsarv3-recovery-0                     1/1     Running     0             3m24s
    my-release-pulsarv3-zookeeper-0                    1/1     Running     0             3m24s
    my-release-pulsarv3-zookeeper-1                    1/1     Running     0             3m24s
    my-release-pulsarv3-zookeeper-2                    1/1     Running     0             3m24s
    
  • Автономная версия Milvus

    NAME                                               READY   STATUS      RESTARTS   AGE
    my-release-etcd-0                                  1/1     Running     0          30s
    my-release-milvus-standalone-54c4f88cb9-f84pf      1/1     Running     0          30s
    my-release-minio-5564fbbddc-mz7f5                  1/1     Running     0          30s
    

3. Перенаправьте локальный порт на Milvus

Убедитесь, на каком локальном порте прослушивает сервер Milvus. Замените имя подсистемы на своё.

$ kubectl get pod my-release-milvus-proxy-6bd7f5587-ds2xv --template
='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530

Затем выполните следующую команду, чтобы перенаправить локальный порт на порт, на котором работает Milvus.

$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530

При желании вы можете использовать :19530 вместо 27017:19530 в приведенной выше команде, чтобы kubectl автоматически выделил вам локальный порт, и вам не пришлось заниматься устранением конфликтов портов.

По умолчанию перенаправление портов с помощью `kubectl` осуществляется только на localhost. Используйте флаг address, если хотите, чтобы Milvus прослушивал выбранные или все IP-адреса. Следующая команда настраивает перенаправление портов на прослушивание всех IP-адресов хост-машины.

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530
Forwarding from 0.0.0.0:27017 -> 19530

Теперь вы можете подключиться к Milvus через перенаправленный порт.

Доступ к веб-интерфейсу Milvus

Milvus поставляется со встроенным графическим инструментом под названием Milvus WebUI, доступ к которому можно получить через браузер. Milvus WebUI улучшает наблюдаемость системы благодаря простому и интуитивно понятному интерфейсу. С помощью Milvus WebUI можно просматривать статистику и метрики компонентов и зависимостей Milvus, проверять сведения о базах данных и коллекциях, а также просматривать подробные конфигурации Milvus. Подробнее о Milvus WebUI см. в разделе Milvus WebUI

Чтобы включить доступ к Milvus WebUI, необходимо настроить перенаправление портов прокси-пода на локальный порт.

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27018:9091
Forwarding from 0.0.0.0:27018 -> 9091

Теперь вы можете получить доступ к Milvus Web UI по адресу http://localhost:27018.

Удаление Milvus

Выполните следующую команду для удаления Milvus.

$ helm uninstall my-release

Storage V3 по умолчанию отключен. Включите его перед использованием функций, которые от него зависят. Требования и рекомендации по совместимости см. в разделе «Storage V3».

Что дальше

После установки Milvus вы можете:

ПереведеноDeepL

Office Hours

Часы работы офиса Милвус

Получите помощь в развертывании производства от Zilliz, экспертов по Milvus.

Забронируйте бесплатную сессию 1:1

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

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

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

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