Installation
On this page
Prerequisites
Before using Kubernetes Launch Kit, ensure the following:
Kubernetes cluster with the NVIDIA Network Operator Helm chart installed, including the SR-IOV Network Operator, Maintenance Operator, and Node Feature Discovery (NFD). For installation instructions, see Getting Started with Kubernetes.
kubectlconfigured with access to the target cluster.Docker or Podman on the machine where you will run
l8k(only for the container scenario).
Install
Choose one of the methods below. The script and Homebrew methods install a binary plus profile templates and presets to a local prefix; the container method runs l8k from a published image and writes nothing outside your working directory.
Script
Downloads the latest release from GitHub and installs the l8k binary, profile templates, and presets to /usr/local:
curl -fsSL https://raw.githubusercontent.com/nvidia/k8s-launch-kit/main/scripts/install.sh | sh
Pin a specific version or install to a custom directory:
L8K_VERSION=v1.0.0 sh scripts/install.sh
curl -fsSL https://raw.githubusercontent.com/nvidia/k8s-launch-kit/main/scripts/install.sh | sh -s -- -d ~/local
Homebrew
For macOS and Linux systems with Homebrew:
brew tap nvidia/l8k https://github.com/nvidia/k8s-launch-kit
brew install l8k
Container
Run l8k directly from the published container image without copying any binary or assets to the host filesystem. The image stays in the local Docker cache; everything else (kubeconfig, output directory) is mounted at runtime.
Pull the image once:
docker pull nvcr.io/nvstaging/mellanox/k8s-launch-kit:v26.4.0-beta.8
Define a shell alias so l8k invokes the container with kubeconfig + working directory mounted:
alias l8k='docker run --rm --net=host \
-v ~/.kube:/kube:ro \
-v $(pwd):/work -w /work \
nvcr.io/nvstaging/mellanox/k8s-launch-kit:v26.4.0-beta.8'
Add the line to your ~/.bashrc or ~/.zshrc to make it persistent. With this alias in place, every l8k <subcommand> ... invocation creates a fresh container, runs the command, and removes the container — nothing is written outside the current working directory.
Note
--net=host is required so the container can reach the Kubernetes API server. The --rm flag ensures no stopped containers accumulate. Mount the kubeconfig directory read-only.
Verify
The same command works for all installation methods:
l8k version
Uninstall
Use the method that matches how you installed.
Script
curl -fsSL https://raw.githubusercontent.com/nvidia/k8s-launch-kit/main/scripts/install.sh | sh -s -- --uninstall
Homebrew
brew uninstall l8k
brew untap nvidia/l8k
Container
Drop the alias and remove the cached image:
unalias l8k
docker image rm nvcr.io/nvstaging/mellanox/k8s-launch-kit:v26.4.0-beta.8
Also remove the alias line from your shell rc file if you added it.
Layout (Script and Homebrew)
The script and Homebrew methods install the following under the install prefix (default: /usr/local):
<prefix>/bin/l8k— CLI binary<prefix>/share/l8k/profiles/— profile templates<prefix>/share/l8k/presets/— cluster topology presets<prefix>/share/l8k/l8k-config.yaml— default configuration
The container method does not write anything outside your working directory; profiles, presets, and the default config are baked into the image.
See Also
Quick Start — end-to-end walkthrough using
l8kCLI Reference — full flag reference