Skip to content

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
Expected output:
# 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.