Install
Install the CLI and the tools for your platform, then run kubefit demo to try a real CKA or CKAD rep without an account. Ready to save your progress? Run kubefit start.
Both commands check your setup and launch the exercise for you. You do not need to run doctor, login, packs or drill separately before starting. The demo flow requires CLI v0.1.13 or later; check with kubefit version and upgrade using the instructions below if needed.
Prerequisites
kubefit runs on macOS (Apple silicon or Intel) and Linux. For demo and start, install Docker, kind, kubectl and helm, and start Docker. The other tools below are only needed for the named tracks or features; you do not need them for the CKA or CKAD demo.
| Tool | Needed for | macOS Homebrew formula |
|---|---|---|
| Docker engine (Docker Desktop is fine) | All Kubernetes tracks | --cask docker, or the links below |
| kind | All Kubernetes tracks | kind |
| kubectl | All Kubernetes tracks | kubernetes-cli |
| helm | All Kubernetes tracks | helm |
Lima (limactl) | LFCS | lima |
| istioctl | ICA | istioctl |
| trivy | CKS: 20 of the 25 drills check for it before they start | trivy |
| Python 3 and Bash | Mock exams (kubefit test), every track | Present on macOS and most Linux systems |
| tmux | Optional, for --tmux | tmux |
On macOS, use Homebrew:
brew install kind kubernetes-cli helm
Docker is separate: brew install --cask docker on macOS, or
Docker Desktop ↗.
Linux
Install tools from their official Linux packages or release binaries. Select your distribution and CPU architecture in each guide:
- Docker Engine ↗ — install and start the daemon; follow the Linux post-install steps ↗ to run Docker as your normal user.
- kind release binaries ↗.
- kubectl on Linux ↗.
- Helm release binaries or package manager ↗.
- LFCS: Lima release binaries ↗ and QEMU ↗.
- ICA: istioctl ↗.
- CKS: Trivy Linux packages ↗.
Optional tmux is available through your distribution’s package manager.
kubefit doctor prints a hint for anything missing, matched to your platform:
Homebrew commands on macOS, and the upstream install pages or a direct command
on Linux.
Give Docker enough resources for a three-node kind cluster: 4 CPUs and 6 GB of memory is comfortable. The LFCS VM asks for 2 CPUs, 3 GiB of memory and a 20 GiB disk, plus two 4 GiB practice disks.
Install the CLI
On macOS, install from the Homebrew tap. The same formula carries Linux amd64 and arm64 builds, for Homebrew on Linux:
brew tap BGilleran522/kubefit
brew trust BGilleran522/kubefit
brew install kubefit
Homebrew 7 requires brew trust for third-party taps; without it the install stops with Refusing to load formula ... from untrusted tap. The binary is universal, so one formula covers Apple silicon and Intel, and it is signed with a Developer ID Application certificate and notarized by Apple. Later versions are brew upgrade kubefit.
On Linux, download the static binary for your architecture and verify its checksum before installing. This needs curl, jq, tar, sha256sum and sudo:
(
set -eu
case "$(uname -m)" in
x86_64) arch=amd64 ;;
aarch64|arm64) arch=arm64 ;;
*) echo "Supported Linux architectures: x86_64 and arm64" >&2; exit 1 ;;
esac
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
cd "$tmp"
curl -fsSL -o release.json https://api.github.com/repos/BGilleran522/homebrew-kubefit/releases/latest
version=$(jq -er '.tag_name' release.json)
asset="kubefit-$version-linux-$arch.tar.gz"
sha=$(jq -er --arg name "$asset" '.assets[] | select(.name == $name) | .digest | select(test("^sha256:[0-9a-f]{64}$")) | ltrimstr("sha256:")' release.json)
curl -fL -o kubefit.tar.gz "https://github.com/BGilleran522/homebrew-kubefit/releases/download/$version/$asset"
printf '%s kubefit.tar.gz\n' "$sha" | sha256sum -c -
tar -xzf kubefit.tar.gz kubefit
sudo install -m 0755 kubefit /usr/local/bin/kubefit
kubefit version
)
The installer fetches the latest release and checks its GitHub-published SHA-256 digest before installation. Missing release metadata, a failed download or a checksum mismatch stops installation. Install jq through your distribution’s package manager if needed. If GitHub rate-limits the request, retry later or use the releases page ↗. Upgrading uses the same commands.
The Linux binaries are CGO_ENABLED=0 static builds for amd64 and arm64, so they run on glibc and musl alike. Signing and notarization are macOS concerns; the Linux archives are unsigned.
Try a real rep — no account
kubefit demo
Choose 1 for CKA (a broken Service) or 2 for CKAD (failing health probes). To skip the choice, run kubefit demo cka or kubefit demo ckad.
The command handles the setup:
- Checks Docker, kind, kubectl and helm, including whether Docker is running.
- Downloads a public, single-exercise demo pack and verifies its signature. No login or separate
kubefit packscommand is needed. - Creates or reuses the local kind cluster, seeds the exercise, prints the task, starts the timer and opens the drill shell.
The first cluster setup can take a few minutes and needs an internet connection to download the pack and container images. The demo checks prerequisites; it does not install missing tools or start Docker for you. Follow any platform-specific hints, then run the same demo command again. Missing optional tools do not block the demo.
Work on the task with kubectl. Inside the drill shell:
kubefit task # Show the task again if needed
kubefit grade # Check your work against the real cluster
exit # Finish; KubeFit checks the final state and prints the result
You still solve the task yourself. The demo uses the real timer and grader, but does not save or sync a rep or change readiness, even if you are already signed in. It does not turn into a saved training rep later.
Start training with saved progress
After leaving the demo shell:
kubefit start
Choose cka or ckad if prompted, or use kubefit start cka or kubefit start ckad directly. start:
- Saves your track choice and checks the required tools.
- Runs the browser sign-in flow if no CLI token is stored. Create a free account and confirm your email if needed, then approve the CLI code. See Account, email and CLI login for help.
- Downloads and verifies the training pack if it is not already cached.
- Picks the next rep from your training history, prepares the cluster and opens the timed drill shell.
Work, run kubefit grade, then exit. Training reps are recorded locally and synced to your account. Run kubefit start again to continue with your saved track; you do not need to repeat the individual setup commands. start currently supports CKA and CKAD.
When you are finished and back in your normal terminal, run kubefit end to remove the local training environments and seeded files. Your saved reps, notes, packs and token stay.
Check your tools
For a standalone diagnostic without launching an exercise:
kubefit doctor
This is the same setup check that demo and start run. It reports tools as ok, missing, broken or stopped, with platform-specific hints. Fix missing or broken core tools and start Docker if its daemon is stopped, then retry demo or start.
Docker, kind, kubectl and helm are core requirements. Lima, istioctl, trivy, Python 3 and Bash are reported as optional for their specific tracks or features. doctor exits nonzero when a core tool is unavailable; missing optional tools do not fail the core check.
Next
The Quickstart walks through the first rep and keeps the individual setup commands as an optional manual path. See Tracks and cluster profiles for other tracks, or the CLI reference for every command.