EVA Vision Installation Guide
This guide provides instructions for installing the EVA Vision module, which is responsible for real-time vision analysis of video streams, into a Kubernetes cluster.
🛠️ Prerequisites
Before starting the installation, please ensure that the following requirements are met:
-
Kubernetes Cluster: A cluster environment where the EVA system will be deployed.
-
NVIDIA GPU Nodes: GPU-equipped nodes are mandatory for AI inference. The NVIDIA Device Plugin must be installed in the cluster.
-
kubectl & Helm:
-
AWS CLI & ECR Permissions: For AWS environments, AWS credentials are required to pull images from the ECR.
aws configure
# Enter your AWS Access Key ID / Secret Key as prompted.
🚀 Installing EVA Vision
Step 1: Register and Update Helm Repository
Register the eva-vision repository deployed via GitHub ChartMuseum to your local Helm and fetch the latest information.
# Add repository
helm repo add eva-vision https://raw.githubusercontent.com/mellerikat/eva-vision/chartmuseum/
# Update repository
helm repo update
Step 2: Prepare Configuration File (values.yaml)
Extract the default configuration template defined in the chart.
helm show values eva-vision/eva-vision > values.yaml
Step 3: Update Settings for Your Environment
Modify the settings based on your operation environment (Cloud/AWS) or development environment (On-premise/K3s). You can edit values.yaml directly or prepare separate override files.
Key Configuration Guide
| Category | Parameter | Description | On-premise (Local) | Cloud (AWS) |
|---|---|---|---|---|
| Image | image.tag | Docker image tag | v2 | v2 |
| Resource | resources.limits | Number of GPUs to allocate per Pod | nvidia.com/gpu: 1 | nvidia.com/gpu: 1 |
| Storage | persistence.storageClass | Storage class for log retention | local-path | eva-agent-sc-bs (EFS, etc.) |
| Node Selection | affinity | Settings to deploy on specific GPU nodes | (Leave blank) | e.g., g6.2xlarge |
| Model Mgmt | marName | AI model archive file (.mar) names | Owl-v2, ig, OmDet... | Owl-v2, ig, OmDet... |
| Process | maxWorkers | Max workers (Consider GPU memory) | 1 | 1 |
| Inference | maxBatchDelay | Max wait time to form a batch | 150ms | 150ms |
📂 Cloud (AWS EKS) Override Example (eva-vision-aws.yaml)
# Override settings for AWS environment
persistence:
storageClass: "eva-agent-sc-bs"
size: 30Gi
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node.kubernetes.io/instance-type
operator: In
values:
- g6.2xlarge
📂 Local K3s Override Example (eva-vision-k3s.yaml)
# Override settings for Local environment
persistence:
storageClass: "local-path"
size: 20Gi
affinity: {}
# Remove specific instance type restrictions for local environments.
Step 4: Execute Installation Command
Apply the prepared configuration files and proceed with the deployment. We recommend using the upgrade --install command for both initial installations and updates.
Method A: AWS EKS Deployment
# Get ECR login password (if required)
ecr_password=$(aws ecr get-login-password --region "ap-northeast-2")
# Execute deployment
helm upgrade --install eva-vision eva-vision/eva-vision \
-n eva-vision \
--create-namespace \
-f values.yaml \
-f eva-vision-aws.yaml
Method B: Local (K3s) Deployment
# Execute deployment
helm upgrade --install eva-vision eva-vision/eva-vision \
-n eva-vision \
--create-namespace \
-f values.yaml \
-f eva-vision-k3s.yaml
Step 5: Verify Installation
The initial startup may take several minutes due to the AI model loading (Model Serving) process. Monitor the Pod status until it reaches the Running state.
# Monitor pod status in real-time
kubectl get pod -n eva-vision -w
Example of successful status:
NAME READY STATUS RESTARTS AGE
eva-vision-6fbbf8c4f-s47dw 1/1 Running 0 2m