EVA Agent Dependencies
EVA Agent를 실행하기 위해 필요한 의존성(Dependencies) 설치 가이드입니다.
EVA Agent를 설치하기 전에 데이터 저장을 위한 Qdrant(벡터 DB)와 모델 추론을 위한 vLLM 인프라를 먼저 구축해야 합 니다.
이 문서에서는 EVA 구동에 필요한 의존성 패키지 설치 방법을 안내합니다.
설치 구조 이해하기
원활한 설치를 위해 패키지 간 설치 순서를 확인하세요.
- eva-agent-init: 스토리지 클래스(Storage Class)를 정의합니다. (가장 먼저 설치)
- qdrant / vllm: 위에서 정의한 스토리지를 사용하여 데이터를 보관합니다.
- eva-agent: 위 서비스가 준비되면 마지막에 설치합니다.
사전 준비 사항
설치에 필요한 CLI 도구가 준비되어 있는지 확인하세요.
-
kubectl: 클러스터 제어 도구 설치
-
helm: 패키지 관리 도구 설치
-
kustomize: 설정 커스텀 도구 (post-render 시 필요)
# kustomize 바이너리 설치 (Linux 기준)
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
chmod +x kustomize
sudo mv kustomize /usr/local/bin/
kustomize version -
On-premise 설정 (AWS/NCP 등 클라우드 환경에서는 불필요)
-
k3s 설치
curl -sfL https://get.k3s.io | sudo sh -s - --docker
mkdir -p $HOME/.kube
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config
sudo chown $(id -un):$(id -gn) $HOME/.kube/config
kubectl version -
NFS CSI Driver 설치
helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts
helm repo update
helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --namespace kube-system --version v4.11.0 -
NFS 서버 설치 & 디렉토리 노출
sudo apt update
sudo apt install nfs-kernel-server -y
NFS_SHARE_PATH=/data001/share/eva-agent
sudo mkdir -p ${NFS_SHARE_PATH}
# EVA Agent / vLLM 캐시 디렉토리 생성
# NFS 서버에서 소유권/권한 설정
sudo mkdir -p ${NFS_SHARE_PATH}/agent-cache ${NFS_SHARE_PATH}/vllm-cache
sudo chown -R 10001:10001 ${NFS_SHARE_PATH}
sudo chmod -R 0775 ${NFS_SHARE_PATH}
# NFS 공유는 localhost만 허용 (k3s 단일 노드 클러스터를 가정)
# 필요 시 NFS로 공유할 노드 IP 주소는 변경이 필요합니다 (다른 node의 pod 에서 NFS에 접근해야 하는 경우)
echo "${NFS_SHARE_PATH} 127.0.0.1(rw,sync,no_subtree_check,root_squash,anonuid=10001,anongid=10001)" | sudo tee -a /etc/exports
sudo exportfs -ra
sudo systemctl restart nfs-kernel-server
# test
showmount -e localhost
sudo mkdir /mnt/tmp && sudo mount -t nfs -o rw,nfsvers=4 localhost:${NFS_SHARE_PATH} /mnt/tmp
sudo umount /mnt/tmp
-
Helm 저장소 등록 및 업데이트
필요한 오픈소스 레포지토리를 등록한 뒤 최신 상태로 업데이트합니다. EVA Agent를 설치할 namespace도 미리 생성합니다.
# 1. 각 레포지토리 추가
helm repo add qdrant https://qdrant.github.io/qdrant-helm
helm repo add eva-agent https://mellerikat.github.io/eva-agent
# 2. 최신 정보 업데이트
helm repo update
# 3. EVA Agent 설치용 namespace/service account 생성
kubectl create namespace eva-agent
kubectl create serviceaccount sa-eva-agent -n eva-agent
1단계: eva-agent-init 설치
이 패키지는 이후 설치할 Qdrant와 vLLM이 데이터를 저장할 수 있도록 공통 Storage Class를 미리 정의하는 단계입니다.
- 패키지 역할:
eva-agent-vllm및eva-agent-qdrant가 데이터를 안전하게 보관할 수 있도록 전용 스토리지 클래스를 구성합니다.- 따라서 반드시 다른 패키지들보다 가장 먼저 설치되어야 합니다.