Argo K3S Install Guide¶
This guide covers deploying the ML Argo workflows to a production server running k3s with NVIDIA GPU support. This uses the lighter weight K3s certified Kubernetes distribution which is easier to use and faster to install than other Kubernetes installations. It is appropriate for a single server deployment and has a simpler learning curve. This would ostensibly also work on edge devices, e.g. Jetson, Raspbery Pi, although that has not been tested.
What is an Argo Workflow? Argo Workflows is an open-source engine used to run and coordinate parallel or sequential jobs on Kubernetes. It is a container native engine, meaning it requires your code be packaged in a Docker container.
Architecture¶
Production Setup¶
- k3s Kubernetes: Single-server setup with embedded SQLite database at
/opt/deployment/bin/k3s - CNI: Flannel with vxlan backend (default)
- Docker: Existing Docker with NVIDIA runtime for building images (integrated with k3s)
- GPU Support: NVIDIA GPU with nvidia-docker runtime
- Storage: Local hostPath persistent volumes at
/opt/deployment/argo-workflows/k3d/storage/ - Workflows: Argo Workflows for orchestration
- All data in
/opt/deployment/(user-owned) - Only need sudo for initial installation. Seesetup.md
- kubectl, argo, and workflows don't need sudo
- According to the K3s documentation, this single-server configuration uses an embedded SQLite database for the datastore. Flannel is the default CNI plugin with vxlan backend for pod networking.
Key Differences from Development¶
| Feature | Development (Minikube) | Production (k3s) |
|---|---|---|
| Kubernetes | Minikube | k3s |
| GPU | No (CPU only) | Yes (NVIDIA) |
| Images | Docker daemon shared | Import from Docker to k3s |
| Storage | Minikube hostPath | k3s local-path provisioner |
Prerequisites¶
Required Software¶
- Docker with NVIDIA runtime already configured
- NVIDIA drivers and CUDA installed
- Miniconda (for Ansible environment)
- jq (for JSON parsing)
- systemd with user services enabled
Required Permissions¶
- Write access to
/opt/deployment/(usechownif needed) - Docker group membership (for building images)
🗓️ Updated: 2026-08-26