문서 목차
ORKESTRIX설치
Milvus 벡터 DB
벡터 임베딩 저장/검색 을 위한 Milvus 벡터 데이터베이스를 구성합니다. Attu 웹 UI로 컬렉션과 데이터를 관리할 수 있습니다.
QUANTUM C&S
벡터 임베딩 저장/검색을 위한 Milvus 벡터 데이터베이스를 구성합니다. Attu 웹 UI로 컬렉션과 데이터를 관리할 수 있습니다.
오브젝트 스토리지로 별도 MinIO 대신 이미 구축된 Ceph RGW(S3 게이트웨이)를 사용합니다.
설정값
inventory/qks/group_vars/all/all-k8s.yaml:
qks_milvus_enabled: true
qks_milvus_version: 4.2.47
qks_milvus_admin_fqdn: "milvus.{{ kube_default_domain }}"
qks_milvus_kafka_enabled: true
qks_milvus_minio_enabled: false
qks_milvus_s3_endpoint: "qks-ceph-s3.{{ qks_cephadm_namespace }}.svc.cluster.local"
실행
./install.sh ubuntu plays/qks-milvus.yaml
설치 흐름
./install.sh ubuntu plays/qks-milvus.yaml
├─ 1. Attu 접속 도메인을 각 노드 /etc/hosts에 등록
├─ 2. Helm 저장소 등록 ('zilliztech')
├─ 3. 네임스페이스 생성
└─ 4. Helm으로 Milvus 배포 (etcd+Kafka/Zookeeper+Milvus 컴포넌트+Attu, 외부 S3 연동)
설치 확인
kubectl get pods -n <qks_milvus_namespace> | grep milvus
etcd(3) · kafka(3) · zookeeper(3) · proxy · mixcoord · datanode · indexnode · querynode · attu 파드가 모두 Running이어야 합니다.
실제 동작 확인
헬스체크:
kubectl run curltest --rm -i --image=curlimages/curl --restart=Never -- \
curl -s http://qks-milvus.<ns>.svc.cluster.local:9091/healthz
OK가 나오면 정상입니다.
벡터 저장/검색 확인(REST API):
kubectl run milvustest --rm -i --image=curlimages/curl --restart=Never -- sh -c '
curl -s -X POST http://qks-milvus.<ns>.svc.cluster.local:19530/v2/vectordb/collections/create \
-H "Content-Type: application/json" -d "{\"collectionName\": \"test\", \"dimension\": 4}"
curl -s -X POST http://qks-milvus.<ns>.svc.cluster.local:19530/v2/vectordb/entities/insert \
-H "Content-Type: application/json" -d "{\"collectionName\": \"test\", \"data\": [{\"id\": 1, \"vector\": [0.1,0.2,0.3,0.4]}]}"
curl -s -X POST http://qks-milvus.<ns>.svc.cluster.local:19530/v2/vectordb/entities/search \
-H "Content-Type: application/json" -d "{\"collectionName\": \"test\", \"data\": [[0.1,0.2,0.3,0.4]], \"limit\": 1}"
'
검색 결과에 방금 삽입한 벡터(id: 1)가 나오면 정상입니다. 확인 후 정리:
kubectl run milvuscleanup --rm -i --image=curlimages/curl --restart=Never -- \
curl -s -X POST http://qks-milvus.<ns>.svc.cluster.local:19530/v2/vectordb/collections/drop \
-H "Content-Type: application/json" -d '{"collectionName": "test"}'
Attu 웹 UI 확인:
curl -k -s -o /dev/null -w "%{http_code}\n" https://<qks_milvus_admin_fqdn>/
200이 나오면 정상입니다.