2020-10-01 20:16:41 +02:00
< p align = "center" > < img alt = "kind" src = "./logo/logo.png" width = "300px" / > < / p >
2018-07-23 10:06:37 -07:00
2019-08-05 12:49:23 -07:00
# Please see [Our Documentation](https://kind.sigs.k8s.io/docs/user/quick-start/) for more in-depth installation etc.
2018-09-13 23:25:27 -07:00
2021-05-18 22:45:06 -07:00
kind is a tool for running local Kubernetes clusters using Docker container "nodes".
2019-12-19 15:44:31 -08:00
kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI.
2018-07-23 10:06:37 -07:00
2025-08-27 10:43:38 -07:00
If you have [go] 1.16+ and [docker], [podman] or [nerdctl] installed `go install sigs.k8s.io/kind@v0.30.0 && kind create cluster` is all you need!
2018-09-20 11:18:45 -07:00
2019-12-13 15:37:38 -08:00

2018-09-20 11:18:45 -07:00
2019-02-10 15:04:24 -08:00
kind consists of:
2019-02-14 12:11:48 +08:00
- Go [packages][packages] implementing [cluster creation][cluster package], [image build][build package], etc.
- A command line interface ([`kind` ][kind cli]) built on these packages.
- Docker [image(s)][images] written to run systemd, Kubernetes, etc.
- [`kubetest` ][kubetest] integration also built on these packages (WIP)
2018-07-23 10:06:37 -07:00
2019-02-14 12:11:48 +08:00
kind bootstraps each "node" with [kubeadm][kubeadm]. For more details see [the design documentation][design doc].
2018-08-10 19:11:53 -07:00
2019-02-14 12:55:47 -08:00
**NOTE**: kind is still a work in progress, see the [1.0 roadmap].
2018-08-10 19:11:53 -07:00
2018-09-13 23:25:27 -07:00
## Installation and usage
2018-07-23 10:06:37 -07:00
2020-08-19 10:51:34 -07:00
For a complete [install guide] see [the documentation here][install guide].
2025-08-27 10:43:38 -07:00
You can install kind with `go install sigs.k8s.io/kind@v0.30.0` .
2019-05-08 18:32:16 -07:00
2022-05-10 18:18:52 -07:00
**NOTE**: please use the latest go to do this. KIND is developed with the latest stable go, see [`.go-version` ](./.go-version ) for the exact version we're using.
2019-05-08 18:32:16 -07:00
2019-05-09 18:45:25 -04:00
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
2021-05-18 22:45:06 -07:00
shown [here ](https://golang.org/doc/code.html#GOPATH ) or do a manual installation by cloning the repo and run
2019-05-16 16:02:35 -07:00
`make build` from the repository.
2018-08-10 19:11:53 -07:00
2019-05-16 14:53:10 -07:00
Without installing go, kind can be built reproducibly with docker using `make build` .
2019-05-08 18:32:16 -07:00
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
2019-08-19 18:39:33 -07:00
into your `$PATH` :
2019-05-08 18:32:16 -07:00
2021-05-18 22:45:06 -07:00
On Linux:
2019-10-17 13:27:50 -07:00
2019-05-08 18:32:16 -07:00
```console
2023-05-16 21:11:53 -07:00
# For AMD64 / x86_64
2025-08-27 10:43:38 -07:00
[ $(uname -m) = x86_64 ] & & curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.30.0/kind-$(uname)-amd64
2023-05-17 19:01:54 -07:00
# For ARM64
2025-08-27 10:43:38 -07:00
[ $(uname -m) = aarch64 ] & & curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.30.0/kind-$(uname)-arm64
2019-08-19 18:39:33 -07:00
chmod +x ./kind
2022-08-04 20:59:36 +04:00
sudo mv ./kind /usr/local/bin/kind
2019-05-08 18:32:16 -07:00
```
2021-05-18 22:45:06 -07:00
On macOS via Homebrew:
2019-11-19 14:02:48 +01:00
```console
brew install kind
```
2021-05-18 22:45:06 -07:00
On macOS via MacPorts:
```console
sudo port selfupdate & & sudo port install kind
```
On macOS via Bash:
```console
2023-05-16 21:11:53 -07:00
# For Intel Macs
2025-08-27 10:43:38 -07:00
[ $(uname -m) = x86_64 ] & & curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.30.0/kind-darwin-amd64
2023-05-16 21:11:53 -07:00
# For M1 / ARM Macs
2025-08-27 10:43:38 -07:00
[ $(uname -m) = arm64 ] & & curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.30.0/kind-darwin-arm64
2021-05-18 22:45:06 -07:00
chmod +x ./kind
mv ./kind /some-dir-in-your-PATH/kind
```
2019-10-17 13:27:50 -07:00
On Windows:
```powershell
2025-08-27 10:43:38 -07:00
curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.30.0/kind-windows-amd64
2019-10-17 13:27:50 -07:00
Move-Item .\kind-windows-amd64.exe c:\some-dir-in-your-PATH\kind.exe
2019-10-18 19:42:24 -05:00
2019-11-11 10:14:22 -06:00
# OR via Chocolatey (https://chocolatey.org/packages/kind)
2019-10-18 19:42:24 -05:00
choco install kind
2019-10-17 13:27:50 -07:00
```
2021-05-18 22:45:06 -07:00
To use kind, you will need to [install docker].
2019-11-01 07:17:18 -07:00
Once you have docker running you can create a cluster with:
2019-08-23 12:14:04 +02:00
```console
kind create cluster
```
2019-11-01 07:17:18 -07:00
To delete your cluster use:
2019-08-23 12:14:04 +02:00
```console
kind delete cluster
```
2018-07-23 10:06:37 -07:00
2018-09-13 23:25:27 -07:00
<!-- TODO(bentheelder): improve this part of the guide -->
To create a cluster from Kubernetes source:
- ensure that Kubernetes is cloned in `$(go env GOPATH)/src/k8s.io/kubernetes`
2019-11-01 07:17:18 -07:00
- build a node image and create a cluster with:
2019-08-23 12:14:04 +02:00
```console
2019-11-01 07:13:39 -07:00
kind build node-image
kind create cluster --image kindest/node:latest
2019-08-23 12:14:04 +02:00
```
2018-07-23 10:06:37 -07:00
2019-01-10 23:19:33 -08:00
Multi-node clusters and other advanced features may be configured with a config
file, for more usage see [the docs][user guide] or run `kind [command] --help`
2018-07-23 10:06:37 -07:00
2019-11-10 18:36:38 -08:00
## Community
2018-08-27 10:21:43 -07:00
2021-05-18 22:45:06 -07:00
Please reach out for bugs, feature requests, and other issues!
2018-09-13 23:25:27 -07:00
The maintainers of this project are reachable via:
2018-09-12 14:44:29 -07:00
2018-12-04 17:40:53 -08:00
- [Kubernetes Slack] in the [#kind ] channel
2018-09-13 23:25:27 -07:00
- [filing an issue] against this repo
- The Kubernetes [SIG-Testing Mailing List]
2018-09-12 14:44:29 -07:00
2025-04-01 12:53:39 +01:00
Current maintainers are [@aojea ], [@BenTheElder ], and [@stmcginnis ] - feel free to
2018-12-14 23:02:52 -08:00
reach out if you have any questions!
2018-09-12 14:44:29 -07:00
2021-05-18 22:45:06 -07:00
Pull Requests are very welcome!
2019-11-10 18:36:38 -08:00
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. 🙂
2018-09-12 14:44:29 -07:00
2019-02-14 12:55:47 -08:00
See also: our own [contributor guide] and the Kubernetes [community page].
2018-09-12 14:44:29 -07:00
2019-01-15 19:52:35 -06:00
## Why kind?
2019-02-14 12:11:48 +08:00
- kind supports multi-node (including HA) clusters
- kind supports building Kubernetes release builds from source
2021-04-12 09:37:36 +08:00
- support for make / bash or docker, in addition to pre-published builds
2019-12-19 15:44:31 -08:00
- kind supports Linux, macOS and Windows
2021-01-24 10:14:06 +01:00
- kind is a [CNCF certified conformant Kubernetes installer ](https://landscape.cncf.io/?selected=kind )
2019-01-15 19:52:35 -06:00
2018-09-12 14:44:29 -07:00
### Code of conduct
2018-09-13 23:25:27 -07:00
Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct].
2018-09-12 14:44:29 -07:00
2018-08-31 22:11:51 -07:00
<!-- links -->
2018-09-20 11:18:45 -07:00
[go]: https://golang.org/
2019-08-05 12:49:23 -07:00
[go-supported]: https://golang.org/doc/devel/release.html#policy
2018-09-20 11:18:45 -07:00
[docker]: https://www.docker.com/
2023-05-16 21:11:53 -07:00
[podman]: https://podman.io/
2024-02-27 07:01:53 +00:00
[nerdctl]: https://github.com/containerd/nerdctl
2020-01-09 13:11:11 +07:00
[community page]: https://kubernetes.io/community/
2018-09-13 23:25:27 -07:00
[Kubernetes Code of Conduct]: code-of-conduct.md
[Go Report Card Badge]: https://goreportcard.com/badge/sigs.k8s.io/kind
[Go Report Card]: https://goreportcard.com/report/sigs.k8s.io/kind
2019-06-29 15:19:34 +08:00
[conformance tests]: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md
2018-08-31 22:11:51 -07:00
[packages]: ./pkg
[cluster package]: ./pkg/cluster
[build package]: ./pkg/build
[kind cli]: ./main.go
[images]: ./images
[kubetest]: https://github.com/kubernetes/test-infra/tree/master/kubetest
[kubeadm]: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
2019-02-14 12:11:48 +08:00
[design doc]: https://kind.sigs.k8s.io/docs/design/initial
[user guide]: https://kind.sigs.k8s.io/docs/user/quick-start
2018-09-13 23:25:27 -07:00
[SIG-Testing Mailing List]: https://groups.google.com/forum/#!forum/kubernetes-sig-testing
2018-10-30 19:43:16 +02:00
[issue tracker]: https://github.com/kubernetes-sigs/kind/issues
2018-09-13 23:25:27 -07:00
[filing an issue]: https://github.com/kubernetes-sigs/kind/issues/new
[Kubernetes Slack]: http://slack.k8s.io/
2018-12-04 17:40:53 -08:00
[#kind ]: https://kubernetes.slack.com/messages/CEKK1KTN2/
2022-09-06 22:09:35 -07:00
[1.0 roadmap]: https://kind.sigs.k8s.io/docs/contributing/1.0-roadmap
2018-09-13 23:25:27 -07:00
[install docker]: https://docs.docker.com/install/
[@BenTheElder ]: https://github.com/BenTheElder
[@munnerz ]: https://github.com/munnerz
2021-01-21 20:34:08 -08:00
[@aojea ]: https://github.com/aojea
[@amwat ]: https://github.com/amwat
2025-04-01 12:53:39 +01:00
[@stmcginnis ]: https://github.com/stmcginnis
2019-02-14 12:55:47 -08:00
[contributor guide]: https://kind.sigs.k8s.io/docs/contributing/getting-started
2019-05-08 18:32:16 -07:00
[releases]: https://github.com/kubernetes-sigs/kind/releases
2020-08-19 10:51:34 -07:00
[install guide]: https://kind.sigs.k8s.io/docs/user/quick-start/#installation
2022-05-19 18:13:35 -07:00
[modules]: https://github.com/golang/go/wiki/Modules