NVKind Cluster Deployment with GPUs
Overview
This section targets cases where you have a host machine (local or remote) that has access to NVIDIA GPUs and leverage nvkind to create and manage kind kubernetes clusters with access to GPUs.
The automated shell script will deploy dependencies (Minio, Keycloak and Postgresql), before generating the deployment configuration for the studio and then deploying the main studio services + pipelines.
Prerequisites
Required Tools
| Tool | Version | Installation |
|---|---|---|
| nvkind | Latest | Install Guide |
| Helm | v3.19 | Install Helm |
| OpenShift CLI | Latest | Install oc |
| kubectl | Latest | Bundled with oc |
| jq | Latest | Install jq |
| yq | Latest | Install yq |
Helm Version
v3.19 required - incompatible with v4
Deployment Steps
Step 1: Configure nvkind Prerequisites
Follow the nvkind prerequisites for your OS.
Verify GPU detection:
$ nvidia-smi -L
# GPU 0: NVIDIA L4 (UUID: GPU-3e71c48d-90c0-f46f-195b-4150320f9910)
$ docker run --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all ubuntu:20.04 nvidia-smi -L
Expected output:
# GPU 0: NVIDIA L4 (UUID: GPU-3e71c48d-90c0-f46f-195b-4150320f9910)
Step 2: Run nvkind Setup
Complete the setup steps from nvkind documentation.
Verify configuration:
docker run -v /dev/null:/var/run/nvidia-container-devices/all ubuntu:20.04 nvidia-smi -L
Expected output:
# GPU 0: NVIDIA L4 (UUID: GPU-3e71c48d-90c0-f46f-195b-4150320f9910)
Step 3: Install nvkind
# Install nvkind
go install github.com/NVIDIA/nvkind/cmd/nvkind@latest
cd nvkind
make
Step 4: Create nvkind Cluster
cat << EOF | nvkind cluster create --name=studio --config-template= -
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
extraMounts:
- hostPath: /dev/null
containerPath: /var/run/nvidia-container-devices/all
EOF
Step 5: Set up the kubectl context
kubectl cluster-info --context kind-studio
Optional: If you have limited network bandwidth, you can pre-pull the container images. See image pre-puller details.
NAMESPACE=default ./deployment-scripts/images-pre-puller/deploy-image-prepuller.sh
Step 6: Install NVIDIA GPU Operator
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia && \
helm repo update && \
helm install --wait --generate-name \
-n gpu-operator --create-namespace \
nvidia/gpu-operator --version=v25.10.0
GPU Operator
This may take several minutes. It manages NVIDIA drivers and device plugins in the cluster.
Step 7: Install Python Dependencies
pip install -r requirements.txt
Step 8: Deploy Geospatial Studio
./deploy_studio_k8s.sh
Deployment Time
~10-15 minutes depending on download speed and GPU operator initialization.
Monitor Deployment
Using k9s
k9s
Next Steps
Deployment Complete!
Your GPU-enabled Geospatial Studio is ready.
Continue to First Steps to access services and start using the studio.