Настройка Milvus с помощью Milvus Operator
В производственной среде вам необходимо распределить ресурсы между кластером Milvus в зависимости от типа машины и рабочей нагрузки. Вы можете настроить конфигурацию во время развертывания или обновить ее во время работы кластера.
В этой теме рассказывается о том, как настроить кластер Milvus при его установке с помощью Milvus Operator.
В этой теме предполагается, что вы развернули Milvus Operator. Дополнительные сведения см. в разделе Развертывание Milvus Operator.
Настройка кластера Milvus с помощью Milvus Operator включает в себя:
- Глобальные конфигурации ресурсов
- Конфигурации частных ресурсов
Настройка глобальных ресурсов
При использовании Milvus Operator для запуска кластера Milvus необходимо указать файл конфигурации. В приведенном здесь примере используется файл конфигурации по умолчанию.
kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml
Детали конфигурационного файла приведены ниже:
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
mode: cluster
dependencies: {}
components: {}
config: {}
Поле spec.components включает в себя как глобальную, так и частную конфигурацию ресурсов всех компонентов Milvus. Ниже перечислены четыре часто используемых поля для настройки глобального ресурса.
image: Используемый образ Milvus docker.resources: Вычислительные ресурсы, выделенные каждому компоненту.tolerationsиnodeSelector: Правила планирования для каждого компонента Milvus в кластере K8s. Дополнительные сведения см. в разделах "Допуски" и "Селектор узла".env: Переменные окружения.
Если вы хотите настроить дополнительные поля, см. документацию здесь.
Чтобы настроить глобальный ресурс для кластера Milvus, создайте файл milvuscluster_resource.yaml.
Пример
В следующем примере настраивается глобальный ресурс для кластера Milvus.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
mode: cluster
components:
nodeSelector: {}
tolerations: {}
env: {}
resources:
limits:
cpu: '4'
memory: 8Gi
requests:
cpu: 200m
memory: 512Mi
Выполните следующую команду, чтобы применить новые конфигурации:
kubectl apply -f milvuscluster_resource.yaml
my-release. В противном случае будет создан новый кластер Milvus.Настройка частных ресурсов
Первоначально в Milvus 2.0 кластер Milvus включал семь компонентов: прокси, корневой коорд, коорд данных, коорд запросов, индексный узел, узел данных и узел запросов. Однако вместе с Milvus 2.1.0 был выпущен новый компонент, mix coord. Mix coord включает в себя все компоненты координатора. Поэтому запуск mix coord означает, что вам не нужно устанавливать и запускать другие координаторы, включая root coord, data coord и query coord.
Общие поля, используемые для настройки каждого компонента, включают:
replica: : Количество реплик каждого компонента.port: : Номер порта прослушивания каждого компонента.- Четыре часто используемых поля в глобальной конфигурации ресурсов:
image,env,nodeSelector,tolerations,resources(см. выше). Чтобы узнать больше настраиваемых полей, щелкните на каждом компоненте в этой документации.
Чтобы настроить ресурсы для конкретного компонента, сначала добавьте имя компонента в поле spec.componets, а затем настройте его частные ресурсы.
| Зависимости | Компоненты |
|---|---|
Пример
В приведенном ниже примере в файле milvuscluster.yaml настраиваются реплики и вычислительные ресурсы прокси и датанода.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
mode: cluster
components:
resources:
limits:
cpu: '4'
memory: 8Gi
requests:
cpu: 200m
memory: 512Mi
rootCoord:
replicas: 1
port: 8080
resources:
limits:
cpu: '6'
memory: '10Gi'
dataCoord: {}
queryCoord: {}
indexCoord: {}
dataNode: {}
indexNode: {}
queryNode: {}
proxy:
replicas: 1
serviceType: ClusterIP
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: 100m
memory: 128Mi
config: {}
dependencies: {}
Выполните следующую команду, чтобы применить новые конфигурации:
kubectl apply -f milvuscluster.yaml
Что дальше
- Узнайте, как управлять следующими зависимостями Milvus с помощью Milvus Operator: