If you already installed k7 previously, consider running
make uninstall before reinstalling to avoid stale cached files in a previous .deb.Requirements
- Linux (amd64) host with hardware virtualization (KVM)
- Check:
ls /dev/kvmshould exist - Cloud guidance: AWS
.metal, GCP (enable nested virtualization), Azure D/Ev series; typical VPS often lack KVM
- Check:
- One raw, unformatted disk for thin‑pool provisioning (recommended for many sandboxes)
- Docker with Compose plugin (for the API)
- Install Docker:
curl -fsSL https://get.docker.com | sh
- Install Docker:
- Ansible for the installer (Ubuntu):
- Python 3.10+ on the client for the SDK
Tested setup example: Hetzner Robot instance, Ubuntu 24.04 (x86_64), with an extra empty NVMe disk (for the thin‑pool). See the detailed setup guide (PDF): k7_hetzner_node_setup.pdf.
Install the CLI (APT)
Install thek7 CLI on the node(s) that will host the VM sandboxes:
Install K7 on your node(s)
This installs and wires up Kubernetes (K3s), Kata, Firecracker, Jailer, and the devmapper snapshotter with thin‑pool provisioning:
You should see “Installation completed successfully!” when done. Add
-v for verbose output.The API and managing keys
k7 install deploys the K7 API automatically as a k7-api Deployment in
kube-system. K3s keeps it running and reschedules it on failure — there’s
no separate “start” step. If you want a CLI-only install with no API
deployed, pass --no-api to k7 install.
Check API status
Get the endpoint
Generate an API key
Temporarily disable / re-enable the API
- API keys are stored at
/etc/k7/api_keys.jsonon the cluster node. Authentication accepts theX-API-Keyheader orAuthorization: Bearer <token>. - The previous top-level commands
k7 start-api/k7 stop-api/k7 api-status/k7 get-api-endpointare deprecated; they still work for one release and emit a deprecation warning pointing at the new home.
Create your first sandbox via CLI
Examplek7.yaml:
Create a sandbox
Shell into your sandbox
List sandboxes
Delete a sandbox
Delete all sandboxes
Prerequisites for the SDK
Create your first sandbox via Python SDK
Install the SDK on your client machine:Next steps
- Explore the CLI guide:
/guides/cli - Explore the Python SDK guide:
/guides/python-sdk - Integrate with the REST API:
/api/introduction
