Распределение ресурсов на Kubernetes
В этой теме описывается, как выделять ресурсы для кластера Milvus в Kubernetes.
Как правило, ресурсы, которые вы выделяете кластеру Milvus в производстве, должны быть пропорциональны рабочей нагрузке машины. При выделении ресурсов следует также учитывать тип машины. Хотя вы можете обновить конфигурацию во время работы кластера, мы рекомендуем установить значения перед развертыванием кластера.
Информацию о том, как распределять ресурсы с помощью Milvus Operator, см. в разделе Распределение ресурсов с помощью Milvus Operator.
1. Просмотр доступных ресурсов
Запустите kubectl describe nodes, чтобы просмотреть доступные ресурсы на экземплярах, которые вы выделили.
2. Распределить ресурсы
Используйте Helm для выделения ресурсов процессора и памяти компонентам Milvus.
Существует два способа выделения ресурсов:
Распределение ресурсов с помощью команд
Вам необходимо установить переменные ресурсов для каждого компонента Milvus, если вы используете --set для обновления конфигураций ресурсов.
helm upgrade my-release milvus/milvus --reuse-values --set standalone.resources.limits.cpu=2 --set standalone.resources.limits.memory=4Gi --set standalone.resources.requests.cpu=0.1 --set standalone.resources.requests.memory=128Mi
helm upgrade my-release milvus/milvus --reuse-values --set dataNode.resources.limits.cpu=2 --set dataNode.resources.limits.memory=4Gi --set dataNode.resources.requests.cpu=0.1 --set dataNode.resources.requests.memory=128Mi
Распределение ресурсов с помощью конфигурационного файла
Вы также можете распределить ресурсы процессора и памяти, указав параметры resources.requests и resources.limits в файле resources.yaml.
dataNode:
resources:
limits:
cpu: "4"
memory: "16Gi"
requests:
cpu: "1"
memory: "4Gi"
queryNode:
resources:
limits:
cpu: "4"
memory: "16Gi"
requests:
cpu: "1"
memory: "4Gi"
3. Применить конфигурации
Выполните следующую команду, чтобы применить новые конфигурации к кластеру Milvus.
helm upgrade my-release milvus/milvus --reuse-values -f resources.yaml
resources.limits не указан, поды будут потреблять все доступные ресурсы процессора и памяти. Поэтому убедитесь, что указаны resources.requests и resources.limits, чтобы избежать перераспределения ресурсов, когда другие задачи, выполняющиеся на том же экземпляре, требуют большего потребления памяти.Дополнительные сведения об управлении ресурсами см. в документации Kubernetes.
Что дальше
- Вам также может быть интересно узнать, как:
- Если вы готовы развернуть свой кластер в облаке:
- Узнайте, как развернуть Milvus на Amazon EKS с помощью Terraform.
- Узнайте, как развернуть кластер Milvus на GCP с помощью Kubernetes
- Узнайте, как развернуть Milvus на Microsoft Azure с помощью Kubernetes.