Go to file
2020-10-06 12:50:46 +02:00
.github/ISSUE_TEMPLATE improve issue templates 2020-09-20 17:43:04 +02:00
cmd Merge branch 'main' of github.com:rancher/k3d into enhancement/host-ip 2020-10-05 15:55:15 +02:00
docs docs: add some missing flags and info on host.k3d.internal 2020-10-06 12:46:06 +02:00
pkg clusterCreate: add --no-hostip flag to disable the automatic injection of the host.k3d.internal entry into /etc/hosts and CoreDNS 2020-10-05 15:19:00 +02:00
proxy fix: allow allow port-ranges on the loadbalancer 2020-08-12 15:58:00 +02:00
tests tests/e2e: add wait time between exec tries 2020-10-06 12:50:46 +02:00
tools Tests/E2E: include heper image builds in e2e tests 2020-06-18 10:02:46 +02:00
vendor mod: use upstream cobra again 2020-06-29 22:21:45 +02:00
version add helperversionoverride 2020-07-13 11:58:42 +02:00
.dockerignore add .dockerignore to ignore submodules when building k3d 2020-06-10 19:46:19 +02:00
.drone.yml rename branch master to main 2020-07-15 07:06:47 +02:00
.gitignore integrate k3d-tools repo as Go submodule 2020-06-10 19:41:31 +02:00
Dockerfile tests/e2e: use imported image 2020-10-05 15:53:41 +02:00
go.mod mod: use upstream cobra again 2020-06-29 22:21:45 +02:00
go.sum mod: use upstream cobra again 2020-06-29 22:22:18 +02:00
install.sh check for binary in more BASHy way 2020-07-23 11:50:52 +02:00
LICENSE cleanup and prepare for push to rancher/k3d 2020-01-05 21:16:31 +01:00
main.go Go Module: use v3 for go module compatibility 2020-06-18 07:58:36 +02:00
Makefile Misc: add new 'test' make target 2020-10-05 15:19:28 +02:00
mkdocs.yml resolve favicon issue and move css 2020-06-04 10:31:11 -07:00
README.md no more RC/beta in the docs and readme 2020-07-17 09:07:15 +02:00
thoughts.md use server/agent instead of master/worker 2020-07-14 20:29:33 +02:00

k3d

Build Status License Downloads

Go Module Go version Go Report Card

Please Note: main is now v3.0.0 and the code for v1.x can be found in the main-v1 branch!

k3s in docker

k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s

k3d creates containerized k3s clusters. This means, that you can spin up a multi-node k3s cluster on a single machine using docker.

asciicast

Learning

Requirements

Releases

Note: In May 2020 we upgraded from v1.7.x to v3.0.0 after a complete rewrite of k3d!

Platform Stage Version Release Date
GitHub Releases stable GitHub release (latest by date) GitHub Release Date
GitHub Releases latest GitHub release (latest by date including pre-releases) GitHub (Pre-)Release Date
Homebrew - homebrew -

Get

You have several options there:

  • use the install script to grab the latest release:

    • wget: wget -q -O - https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash
    • curl: curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash
  • use the install script to grab a specific release (via TAG environment variable):

    • wget: wget -q -O - https://raw.githubusercontent.com/rancher/k3d/main/install.sh | TAG=v3.0.0 bash
    • curl: curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | TAG=v3.0.0 bash
  • use Homebrew: brew install k3d (Homebrew is available for MacOS and Linux)

  • install via AUR package rancher-k3d-bin: yay -S rancher-k3d-bin

  • grab a release from the release tab and install it yourself.

  • install via go: go install github.com/rancher/k3d (Note: this will give you unreleased/bleeding-edge changes)

or...

Build

  1. Clone this repo, e.g. via git clone git@github.com:rancher/k3d.git or go get github.com/rancher/k3d/v3@main
  2. Inside the repo run
    • 'make install-tools' to make sure required go packages are installed
  3. Inside the repo run one of the following commands
    • make build to build for your current system
    • go install to install it to your GOPATH (Note: this will give you unreleased/bleeding-edge changes)
    • make build-cross to build for all systems

Usage

Check out what you can do via k3d help or check the docs @ k3d.io

Example Workflow: Create a new cluster and use it with kubectl

  1. k3d cluster create CLUSTER_NAME to create a new single-node cluster (= 1 container running k3s + 1 loadbalancer container)
  2. k3d kubeconfig merge CLUSTER_NAME --switch-context to update your default kubeconfig and switch the current-context to the new one
  3. execute some commands like kubectl get pods --all-namespaces
  4. k3d cluster delete CLUSTER_NAME to delete the default cluster

Connect

  1. Join the Rancher community on slack via slack.rancher.io
  2. Go to rancher-users.slack.com and join our channel #k3d
  3. Start chatting

History

This repository is based on @zeerorg's zeerorg/k3s-in-docker, reimplemented in Go by @iwilltry42 in iwilltry42/k3d, which got adopted by Rancher inrancher/k3d.

  • k3x: a graphics interface (for Linux) to k3d.