擴充 Milvus Standalone
Milvus Standalone 是單機伺服器部署。Milvus Standalone 的所有元件都包裝在單一Docker 映像檔中,讓部署更方便。本主題描述如何擴充在此模式下執行的 Milvus 實例。
先決條件
使用Docker或Docker Compose 部署 Milvus Standalone 時,部署腳本 (standalone_embed.sh) 或配置檔案 (docker-compose.yml) 會建立數個磁碟區,並將它們映射到主機目錄,以確保資料的持久性。
若要擴充以這種方式部署的 Milvus 實例,您必須停止並移除現有的容器或容器堆疊,以更新的組態設定重新部署 Milvus Standalone,並重複使用主機上的持久化資料來啟動新實例。
下表列出了主機和容器之間的卷對應。
部署選項 |
主機路徑 |
容器路徑 |
|---|---|---|
Docker |
|
|
|
|
|
|
|
|
Docker Compose |
|
|
|
|
|
|
|
執行本指南中的程序之前,請確保您的資料持續存在於上述主機路徑中。
擴充使用 Docker 部署的實體
要擴充目前正在執行的 Milvus 實例,您必須停止實例、移除容器,然後以新的設定和持久化資料重新部署實例。
具體步驟如下:
運行
docker stats milvus-standalone查看分配給 Milvus 實例的 CPU 和記憶體。輸出應該與下面相似:CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 917da667f2ff milvus-standalone 6.10% 171.8MiB / 3.886GiB 4.32% 1.57kB / 0B 1.01GB / 1.79MB 31在命令輸出中,您可以找到 Milvus 實例的當前資源使用情況。
停止並移除容器。
$ docker stop milvus-standalone $ docker rm milvus-standalone找到
standalone_embed.sh指令碼檔案,找到docker run指令,並加入資源限制。... sudo docker run -d \ --name milvus-standalone \ --security-opt seccomp:unconfined \ -e ETCD_USE_EMBED=true \ -e ETCD_DATA_DIR=/var/lib/milvus/etcd \ -e ETCD_CONFIG_PATH=/milvus/configs/embedEtcd.yaml \ -e COMMON_STORAGETYPE=local \ -v $(pwd)/volumes/milvus:/var/lib/milvus \ -v $(pwd)/embedEtcd.yaml:/milvus/configs/embedEtcd.yaml \ -v $(pwd)/user.yaml:/milvus/configs/user.yaml \ -p 19530:19530 \ -p 9091:9091 \ -p 2379:2379 \ --health-cmd="curl -f http://localhost:9091/healthz" \ --health-interval=30s \ --health-start-period=90s \ --health-timeout=20s \ --health-retries=3 \ --memory="4g" \ # New memory limit --cpus="2.0" \ # New CPU limit milvusdb/milvus:v2.5.11 \ milvus run standalone 1> /dev/null確保持久化資料與
standalone_embed.sh指令碼在同一資料夾,並執行指令碼如下:sudo bash standalone_embed.sh start執行
docker stats milvus-standalone,查看縮放後分配給 Milvus 實例的 CPU 和記憶體。輸出應與下列內容相似:CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 7aea450f87ce milvus-standalone 7.52% 210.9MiB / 4GiB 5.15% 1.05kB / 0B 610kB / 8.19kB 29
縮放使用 Docker Compose 部署的實例
要縮放目前正在執行的 Milvus 實例,您必須停止實例、移除容器堆疊,然後以新的設定和持久化資料重新部署實例。
具體步驟如下:
執行
docker stats milvus-standalone,查看分配給 Milvus 實例的 CPU 和記憶體。輸出應該與下面相似:CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 917da667f2ff milvus-standalone 6.10% 171.8MiB / 3.886GiB 4.32% 1.57kB / 0B 1.01GB / 1.79MB 31在命令輸出中,您可以找到 Milvus 實例的當前資源使用情況。
停止並移除容器堆疊。
$ docker compose down找到
docker-compose.yml配置文件,找到獨立部分,並添加資源限制。... standalone: container_name: milvus-standalone image: milvusdb/milvus:v2.5.8 command: ["milvus", "run", "standalone"] deploy: resources: limits: cpus: "2" # new cpu limits memory: 4G # new memory limits security_opt: - seccomp:unconfined environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"] interval: 30s start_period: 90s timeout: 20s retries: 3 ports: - "19530:19530" - "9091:9091" depends_on: - "etcd" - "minio"確保持久化資料可用,並執行
docker compose,如下所示:docker compose up -d執行
docker stats milvus-standalone,查看縮放後分配給 Milvus 實例的 CPU 和記憶體。輸出應該與下列內容相似:CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 7aea450f87ce milvus-standalone 7.52% 210.9MiB / 4GiB 5.15% 1.05kB / 0B 610kB / 8.19kB 29