kind

by kubernetes-sigs

kubernetes-sigs /kind

Kubernetes IN Docker - local clusters for testing Kubernetes

6.3K Stars 707 Forks Last release: 11 days ago (v0.9.0) Apache License 2.0 2.7K Commits 18 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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 was primarily designed for testing Kubernetes itself, but may be used for local development or CI.

If you have go and docker installed

GO111MODULE="on" go get sigs.k8s.io/[email protected] && kind create cluster
is all you need!

kind consists of: - Go packages implementing cluster creation, image build, etc. - A command line interface (

kind
) built on these packages. - Docker image(s) written to run systemd, Kubernetes, etc. -
kubetest
integration also built on these packages (WIP)

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

For a complete install guide see the documentation here.

You can install kind with

GO111MODULE="on" go get sigs.k8s.io/[email protected]
.

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

NOTE:

go get
should not be run from a Go [modules] enabled project directory, as go get inside a modules enabled project updates dependencies / behaves differently. Try for example
cd $HOME
first.

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://kind.sigs.k8s.io/dl/v0.9.0/kind-$(uname)-amd64"
chmod +x ./kind
mv ./kind /some-dir-in-your-PATH/kind

On Mac via Homebrew:

brew install kind

On Windows:

curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.9.0/kind-windows-amd64
Move-Item .\kind-windows-amd64.exe c:\some-dir-in-your-PATH\kind.exe

OR via Chocolatey (https://chocolatey.org/packages/kind)

choco install kind

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:
console
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

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!
If you're planning a new feature, please file an issue to discuss first.

Check the issue tracker for

help wanted
issues 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 Linux, macOS and Windows
  • kind is a CNCF certified conformant Kubernetes installer

Code of conduct

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.