Tải xuống file docker-compose.yml mẫu từ kho chính thức
Bước đầu tiên là lấy file cấu hình chuẩn từ kho chứa mã nguồn mở của Milvus để đảm bảo tính tương thích và an toàn.
Chúng ta sẽ sử dụng lệnh git clone để tải toàn bộ thư mục chứa file cấu hình, sau đó di chuyển vào thư mục chứa file mẫu dành cho phiên bản Standalone.
mkdir -p /opt/milvus
cd /opt/milvus
git clone https://github.com/milvus-io/milvus.git
cd milvus
cp docker/docker-compose.yaml ./docker-compose.yml
Kết quả mong đợi: Thư mục /opt/milvus được tạo, file docker-compose.yml đã được sao chép vào thư mục hiện tại và sẵn sàng để chỉnh sửa.
Cấu hình biến môi trường trong file .env
File docker-compose.yml của Milvus được thiết kế để đọc các biến môi trường từ file .env. Việc cấu hình đúng file này là bắt buộc để hệ thống khởi động đúng phiên bản và địa chỉ mạng mong muốn.
Chúng ta sẽ tạo file .env mới với các giá trị mặc định an toàn cho môi trường phát triển và test trên Ubuntu 24.04.
cat > /opt/milvus/.env
Kết quả mong đợi: File /opt/milvus/.env được tạo thành công với các biến môi trường cần thiết cho phiên bản 2.4.0, cấu hình lưu trữ Local và kết nối MinIO/Etcd nội bộ.
Điều chỉnh resource limits cho các service
Milvus Standalone tiêu tốn khá nhiều tài nguyên, đặc biệt là RAM cho bộ nhớ đệm và CPU cho việc tính toán vector. Nếu không giới hạn, nó có thể làm treo máy chủ Ubuntu 24.04 khi chạy cùng các dịch vụ khác.
Chúng ta sẽ chỉnh sửa trực tiếp file docker-compose.yml để thêm khối "deploy" với các giới hạn CPU và Memory cho các container quan trọng như milvus, etcd, và minio.
Sửa file /opt/milvus/docker-compose.yml: Thêm phần resources vào từng service.
cat > /opt/milvus/docker-compose.yml
Kết quả mong đợi: File docker-compose.yml đã được ghi đè với các giới hạn tài nguyên cụ thể: Etcd (1 CPU/1GB RAM), MinIO (1 CPU/2GB RAM), và Milvus Standalone (4 CPU/8GB RAM).
Khởi động cụm Milvus Standalone
Sau khi đã có file cấu hình và biến môi trường, ta tiến hành khởi động toàn bộ cụm dịch vụ ở chế độ nền (daemon) để server không bị treo giao diện.
Lệnh docker compose up -d sẽ tự động kéo image, tạo container, cấu hình mạng và chạy các service theo thứ tự phụ thuộc.
cd /opt/milvus
docker compose up -d
Kết quả mong đợi: Terminal trả về thông báo "Network milvus-network created", "Container milvus-etcd Started", "Container milvus-minio Started", "Container milvus-standalone Started". Quá trình này mất khoảng 1-3 phút để tải image nếu chưa có cache.
Kiểm tra trạng thái và logs khởi động
Bước cuối cùng là xác minh tất cả container đang chạy ổn định và không có lỗi fatal trong quá trình khởi động.
Chúng ta sẽ dùng lệnh ps để xem trạng thái (status) của các container, sau đó xem logs của container chính (standalone) để đảm bảo nó đã kết nối thành công với Etcd và MinIO.
docker compose ps
Kết quả mong đợi: Xuất hiện bảng danh sách 3 container (etcd, minio, standalone) với trạng thái "Up" hoặc "Healthy" sau một vài phút.
docker compose logs -f standalone | grep -E "(Connected|Ready|ERROR|FATAL)"
Kết quả mong đợi: Trong logs xuất hiện dòng "Connected to etcd successfully", "Connected to minio successfully", và quan trọng nhất là dòng "Milvus server is ready" hoặc "Server is ready". Không xuất hiện dòng chứa "FATAL" hay "ERROR" liên quan đến kết nối.
Điều hướng series:
Mục lục: Series: Triển khai Database Vector với Milvus và Ubuntu 24.04
« Phần 2: Cấu hình Docker Engine và Docker Compose trên Ubuntu 24.04
Phần 4: Cấu hình lưu trữ bền vững với MinIO và Etcd »