使用 Milvus Operator 配置 Milvus
在生產環境中,您需要根據機器類型和工作量為 Milvus 叢集分配資源。您可以在部署時進行配置,也可以在叢集運行時更新配置。
本主題介紹如何在使用 Milvus Operator 安裝 Milvus 叢集時進行配置。
本主題假設您已部署 Milvus Operator。更多資訊請參閱部署 Milvus Operator。
使用 Milvus Operator 配置 Milvus 群集包括:
- 全局資源組態
- 私有資源組態
配置全局資源
使用 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: K8s 集群中每個 Milvus 元件的排程規則。更多資訊請參閱容忍度和nodeSelector。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 叢集。配置私有資源
最初在 Milvus 2.0 中,一個 Milvus 叢集包括七個元件:proxy、root coord、data coord、query coord、index node、data node 和 query node。然而,Milvus 2.1.0 發布了一個新的元件--混合協調器。混合協調器包含所有協調器元件。因此,啟動混合協調器意味著您不需要安裝和啟動其他協調器,包括根協調器、資料協調器和查詢協調器。
用於設定每個元件的常見欄位包括
replica:每個元件的複本數量。port:每個元件的監聽埠號碼。- 全局資源設定中常用的四個欄位:
image,env,nodeSelector,tolerations,resources(見上文)。如需更多可設定欄位,請點選本文件中的每個元件。
若要設定特定元件的資源,請先在spec.componets 下的欄位中加入元件名稱,然後再設定其私有資源。
| 依賴 | 元件 |
|---|---|
範例
以下範例在milvuscluster.yaml 檔案中設定 proxy 和 datanode 的複本和運算資源。
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 Operator 管理下列 Milvus 相依性: