使用 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
如果 K8s 叢集中有一個名為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 (見上文)。如需更多可設定欄位,請點選本文件中的每個元件。
此外,在設定代理時,有一個額外的欄位叫做 `serviceType`。這個欄位定義 Milvus 在 K8s 集群中提供的服務類型。

若要設定特定元件的資源,請先在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: {}
此範例不僅設定了全局資源,也設定了 root coord 和 proxy 的私有計算資源。使用此配置文件啟動 Milvus 群集時,私有資源配置將應用於 root coord 和 proxy,而其他元件將遵循全局資源配置。

執行下列指令套用新的配置:

kubectl apply -f milvuscluster.yaml

下一步

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?