擴充 Milvus 集群
Milvus 支援其元件的水平擴充。這意味著您可以根據自己的需要,增加或減少每種類型的工作節點數量。
本主題將介紹如何擴展 Milvus 叢集。我們假設您在擴充之前已經安裝了 Milvus 叢集。此外,我們建議您在開始之前先熟悉Milvus 架構。
本教學以擴充三個查詢節點為例。若要縮放其他類型的節點,請在命令列中以對應的節點類型取代queryNode
。
有关如何使用 Milvus Operator 扩展群集的信息,请参阅使用 Milvus Operator 扩展群集。
什麼是水平縮放?
水平縮放包括縮出和縮入。
縮放
縮放是指增加叢集中的節點數量。與擴充不同的是,向外擴充不需要您為群集中的一個節點分配更多的資源。相反,縮放是透過增加節點來水平擴展群集。
縮放
擴充
根據Milvus 架構,無狀態工作節點包括查詢節點、資料節點、索引節點和代理。因此,您可以擴展這些類型的節點,以滿足您的業務需求和應用場景。您可以手動或自動縮放 Milvus 集群。
一般而言,如果您建立的 Milvus 叢集使用率過高,您就需要將其縮減。以下是一些可能需要縮減 Milvus 叢集的典型情況:
- CPU 和記憶體使用率在一段時間內偏高。
- 查詢吞吐量變高。
- 需要更高的索引速度。
- 需要處理大量的大型資料集。
- 需要確保 Milvus 服務的高可用性。
向內擴展
向內擴充是指減少叢集中的節點數量。一般來說,如果您所建立的 Milvus 叢集使用率不足,您就需要擴充叢集。以下是一些需要擴充 Milvus 叢集的典型情況:
- CPU 和記憶體使用率在一段時間內偏低。
- 查詢吞吐量變低。
- 不需要更高的索引速度。
- 要處理的資料集大小很小。
先決條件
執行kubectl get pods
以取得您建立的 Milvus 叢集中的元件清單及其工作狀態。
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 1m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 1m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 1m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 1m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 1m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 1m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 1m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 1m
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 1m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 1m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 1m
擴充 Milvus 叢集
您可以手動或自動擴充 Milvus 叢集。如果啟用自動擴充,當 CPU 和記憶體資源消耗達到您設定的值時,Milvus 叢集會自動縮小或擴大。
目前,Milvus 2.1.0 只支援手動縮放。
縮放
執行helm upgrade my-release milvus/milvus --set queryNode.replicas=3 --reuse-values
來手動縮放查詢節點。
如果成功,查詢節點上會新增三個執行中的 Pod,如以下範例所示。
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 2m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 2m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 2m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 2m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 2m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 2m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 2m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 2m
my-release-milvus-querynode-7c7779c6f8-czq9f 1/1 Running 0 5s
my-release-milvus-querynode-7c7779c6f8-jcdcn 1/1 Running 0 5s
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 2m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 2m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 2m
縮放
執行helm upgrade my-release milvus/milvus --set queryNode.replicas=1 --reuse-values
以擴充查詢節點。
如果成功,查詢節點上的三個執行中 Pod 將減少為一個,如以下範例所示。
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 2m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 2m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 2m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 2m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 2m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 2m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 2m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 2m
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 2m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 2m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 2m
下一步
如果您想學習如何監控 Milvus 服務並建立警示:
如果您已準備好在雲上部署您的叢集:
如果您正在尋找如何分配資源的說明: