Files
kind/README.md

131 lines
6.2 KiB
Markdown
Raw Normal View History

<p align="center"><img alt="kind" src="./logo/logo.png" width="300x" /></p>
<p align="center"><a href="https://prow.k8s.io/?job=ci-kind-build">
<!-- prow build badge, godoc, and go report card-->
<img alt="Build Status" src="https://prow.k8s.io/badge.svg?jobs=ci-kind-build">
</a> <a href="https://godoc.org/sigs.k8s.io/kind"><img src="https://godoc.org/sigs.k8s.io/kind?status.svg"></a> <a href="https://goreportcard.com/report/sigs.k8s.io/kind"><img alt="Go Report Card" src="https://goreportcard.com/badge/sigs.k8s.io/kind" /></a></p>
2018-07-23 10:06:37 -07:00
2019-02-12 15:47:14 -08:00
### [View The Documentation](https://kind.sigs.k8s.io)
2018-09-13 23:25:27 -07:00
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].
2018-07-23 10:06:37 -07:00
2019-05-08 18:32:16 -07:00
If you have [go] and [docker] installed `GO111MODULE="on" go get -u sigs.k8s.io/kind@master && kind create cluster` is all you need!
2018-09-20 11:18:45 -07:00
2019-03-08 17:23:10 -08:00
<img src="https://gist.githubusercontent.com/BenTheElder/621bc321fc6d9506fd936feb36d32dd0/raw/13fe81c219e64b4917575c8988e06719c072c7f1/kind-demo.gif" alt="2x speed `kind create cluster` demo" />
2018-09-20 11:18:45 -07:00
kind consists of:
- 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
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
2019-05-08 18:32:16 -07:00
You can install the latest bleeding edge kind code with `GO111MODULE="on" go get -u sigs.k8s.io/kind@master`.
**NOTE**: please use the latest go to do this, ideally go 1.12.5 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](https://golang.org/doc/code.html#GOPATH) or do manual installation by cloning the repo and run
`make install` from the repository.
2018-08-10 19:11:53 -07:00
2019-05-08 18:32:16 -07:00
Without installing go, kind can be built reproducibly with docker using `make install`.
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`. E.G. for macOS:
```console
wget https://github.com/kubernetes-sigs/kind/releases/download/0.2.1/kind-darwin-amd64
chmod +x kind-darwin-amd64
mv kind-darwin-amd64 /some-dir-in-your-PATH/kind
```
To use kind, you will need to [install docker].
2018-10-08 11:17:16 -07:00
Once you have docker running you can create a cluster with `kind create cluster`
To delete your cluster use `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`
- build a node image and create a cluster with `kind build node-image && kind create cluster --image kindest/node:latest`
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
2018-09-13 23:25:27 -07:00
## Community, discussion, contribution, and support
2018-08-27 10:21:43 -07:00
2018-09-13 23:25:27 -07:00
Please reach out for bugs, feature requests, and other issues!
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
Current maintainers are [@BenTheElder] and [@munnerz] - 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
2018-09-13 23:25:27 -07:00
Pull Requests are very welcome!
See the [issue tracker] 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
## Why kind?
- kind supports multi-node (including HA) clusters
- kind supports building Kubernetes release builds from source
- support for make / bash / docker, bazel, or installing from apt, in addition to pre-published builds.
- kind is written in go, and can be used as a library, has stable releases
- kind supports Windows in addition to MacOS and Linux
- kind is a [CNCF certified conformant Kubernetes installer](https://landscape.cncf.io/selected=kind)
## Alternatives
Some other open source projects with slightly different but overlapping use cases, features etc.
- https://github.com/bsycorp/kind
- https://github.com/ubuntu/microk8s
- https://github.com/kinvolk/kube-spawn
- https://github.com/kubernetes/minikube
- https://github.com/danderson/virtuakube
- https://github.com/kubernetes-sigs/kubeadm-dind-cluster
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/
[docker]: https://www.docker.com/
2018-09-13 23:25:27 -07:00
[community page]: http://kubernetes.io/community/
[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
[conformance tests]: https://github.com/kubernetes/community/blob/master/contributors/devel/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/
[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/
2019-02-14 12:55:47 -08: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
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