/kind

Kubernetes IN Docker - local clusters for testing Kubernetes

Primary LanguageGoApache License 2.0Apache-2.0

kind

Please see Our Documentation for more in-depth installation etc.

kind is a tool for running local Kubernetes clusters using Docker container "nodes".
kind is primarily designed for testing Kubernetes 1.11+, initially targeting the conformance tests.

If you have go (1.11+) and docker installed GO111MODULE="on" go get sigs.k8s.io/kind@v0.5.1 && kind create cluster is all you need!

2x speed `kind create cluster` demo

kind consists of:

kind bootstraps each "node" with kubeadm. For more details see the design documentation.

NOTE: kind is still a work in progress, see the 1.0 roadmap.

Installation and usage

You can install kind with GO111MODULE="on" go get sigs.k8s.io/kind@v0.5.1.

NOTE: please use the latest go to do this, ideally go 1.13 or greater.

This will put kind in $(go env GOPATH)/bin. If you encounter the error kind: command not found after installation then you may need to either add that directory to your $PATH as shown here or do a manual installation by cloning the repo and run make build from the repository.

Without installing go, kind can be built reproducibly with docker using make build.

Stable binaries are also available on the releases page. Stable releases are generally recommended for CI usage in particular. To install, download the binary for your platform from "Assets" and place this into your $PATH:

On Mac & Linux:

curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/v0.5.1/kind-$(uname)-amd64
chmod +x ./kind
mv ./kind /some-dir-in-your-PATH/kind

On Windows:

curl.exe -Lo kind-windows-amd64.exe https://github.com/kubernetes-sigs/kind/releases/download/v0.5.1/kind-windows-amd64
Move-Item .\kind-windows-amd64.exe c:\some-dir-in-your-PATH\kind.exe

To use kind, you will need to install docker.
Once you have docker running you can create a cluster with kind create cluster
To delete your cluster use kind delete cluster

To create a cluster from Kubernetes source:

  • ensure that Kubernetes is cloned in $(go env GOPATH)/src/k8s.io/kubernetes
  • build a node image and create a cluster with kind build node-image && kind create cluster --image kindest/node:latest

Multi-node clusters and other advanced features may be configured with a config file, for more usage see the docs or run kind [command] --help

Community, discussion, contribution, and support

Please reach out for bugs, feature requests, and other issues!
The maintainers of this project are reachable via:

Current maintainers are @BenTheElder and @munnerz - feel free to reach out if you have any questions!

Pull Requests are very welcome!
See the issue tracker if you're unsure where to start, or feel free to reach out to discuss.

See also: our own contributor guide and the Kubernetes community page.

Why kind?

  • kind supports multi-node (including HA) clusters
  • kind supports building Kubernetes release builds from source
    • support for make / bash / docker or bazel, in addition to pre-published builds
  • kind supports Windows in addition to MacOS and Linux
  • kind is a CNCF certified conformant Kubernetes installer

Alternatives

Some other open source projects with slightly different but overlapping use cases, features etc.

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.