k3d k3s in Docker
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
k3d cluster create <name>
k3d cluster list
k3d cluster stop <name>
k3d cluster delete <name>
k3d image import <image> -c <name>
k3d cluster create -p "8080:80@loadbalancer"
k3d kubeconfig merge <name>
--kubeconfig-switch-context
k3d cluster create --config <file>
Concepts
Clusters
k3d cluster create <name>
k3d cluster list
k3d cluster delete <name>
k3d cluster delete --all
k3d cluster stop <name>
k3d cluster start <name>
k3d cluster create <name> -s <n> -a
<n>
k3d cluster create <name> -i <image>
k3d cluster list -o json
k3d cluster create --no-lb
k3d cluster create --timeout <dur>
Ports and networking
k3d cluster create -p "8080:80@loadbalancer"
k3d cluster create -p "8082:30080@agent:0"
k3d cluster create --api-port 6550
k3d node edit k3d-<name>-serverlb --port-add
8080:80
k3d cluster create --network <net>
Kubeconfig
k3d kubeconfig merge <name>
--kubeconfig-switch-context
k3d kubeconfig get <name>
k3d kubeconfig merge <name>
--kubeconfig-merge-default
k3d kubeconfig merge <name> -o <file>
k3d cluster create --kubeconfig-update-default=false
kubectl config use-context k3d-<name>
Nodes
k3d node listk3d node create <name> -c <cluster>
k3d node create <name> --role server -c
<cluster>
k3d node stop <node>
k3d node start <node>
k3d node delete <node>
Images and registries
k3d image import <image> -c <name>
k3d image import <archive.tar> -c <name>
k3d image import <image> -m direct
k3d registry create <name> --port <port>
k3d registry list
k3d registry delete <name>
k3d cluster create --registry-create <name>
k3d cluster create --registry-use
k3d-<name>:<port>
k3d registry create <name> --proxy-remote-url
<url>
Mounts, env and k3s args
k3d cluster create -v
<host>:<node>@<filter>
k3d cluster create -e "KEY=val@server:0"
k3d cluster create --k3s-arg
"<arg>@server:*"
k3d cluster create --k3s-node-label
"k=v@agent:*"
k3d cluster create --runtime-ulimit
"nofile=1024:1024"
Config file
k3d cluster create --config <file>
k3d cluster create <name> -c <file>
k3d cluster delete -c <file>
k3d config init| Key | Sets |
|---|---|
servers / agents |
Node counts |
image |
k3s image |
ports[].port + nodeFilters |
Port maps |
volumes[].volume |
Mounts |
registries.create / use |
Registry setup |
options.k3s.extraArgs |
k3s flags |
options.k3d.wait |
Wait for ready |
Maintenance
k3d versionk3d completion <shell>
k3d <cmd> --verbose
docker ps -f name=k3d-
Recipes
k3d registry create dev --port 5000k3d cluster create dev -a 2 \ -p "8080:80@loadbalancer" \ --registry-use k3d-dev:5000# push to localhost:5000, pull as k3d-dev:5000
docker build -t app:dev .k3d image import app:dev -c devkubectl create deployment app --image=app:devkubectl set image deploy/app app=app:dev
k3d cluster delete devk3d cluster create --config dev.yamlkubectl get nodes



