需先安装并启动 Docker,否则无法创建集群;用 go install 安装后二进制在 $(go env GOPATH)/bin,未加入 PATH 会报 command not found;从源码建集群需先把 Kubernetes 克隆到 $(go env GOPATH)/src/k8s.io/kubernetes

kind
kubernetes-sigsApache-2.0活跃维护用 Docker 容器快速拉起本地 Kubernetes 集群,方便测试 K8s 本身或验证集群配置,无需虚拟机。
Kubernetes IN Docker - local clusters for testing Kubernetes
go install sigs.k8s.io/[email protected] && kind create clusterREADME 未说明具体硬件要求,只需本机已安装并运行 Docker(也支持 podman、nerdctl)
用 Docker 容器当节点跑本地 Kubernetes 集群,专为测试 K8s 本身和 CI 场景设计
用 Docker 容器快速拉起本地 Kubernetes 集群,方便测试 K8s 本身或验证集群配置,无需虚拟机。
核心能力
- 用 Docker 容器模拟 Kubernetes 节点
- 基于 kubeadm 引导每个节点
- 支持多节点及高可用集群
- 可从 Kubernetes 源码构建节点镜像
- 支持 Linux、macOS 和 Windows
容易踩的坑
- v0.33.0最新正式版2026-08-26 · 2026-08-26 21:58 UTC
This release contains critical dependency updates, bug fixes, and defaults to Kubernetes 1.37.0.
Breaking Changes
The default node image is now
kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5.New Features
- Assorted dependency updates.
Images pre-built for this release:
- v1.37.0:
kindest/node:v1.37.0@sha256:a1ed56cfb0e7b93589bdf97c8cd566405a265939e3620fc4f5de89adff580ae5 - v1.36.4:
kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed - v1.35.8:
kindest/node:v1.35.8@sha256:07b2536e30b803ed61d1677a79df6115f798ce64c80f9e22f6ed45afd09323c0 - v1.34.11:
kindest/node:v1.34.11@sha256:44e222ee2132dab25ff87301682f89eb82c7880ea3a1bf543bfe9708fd08d67d
NOTE: You must use the
@sha256digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.See also:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see #2718
Fixes
- Respect Docker client proxy config for docker nodes. (#4192)
- Preserve external load balancer CDS/LDS configuration across container restarts. (#4195)
- Improve local-path-provisioner helperPod tolerations. (#4210)
- Assorted documentation fixes and improvements.
Contributors
Committers for this release:
- @antoineco
- @BenTheElder
- @christian-heusel
- @erichorwath
- @immanuwell
- @jboero
- @k8s-ci-robot
- @liggitt
- @null
- @popsiclelmlm
- @sestegra
- @stmcginnis
- @tom1299
We'd also like to thank everyone who touched the codebase, filed issues, and helped the community!
- v0.32.02026-06-02 · 2026-06-02 17:34 UTC
查看更新说明
This release contains critical dependency updates, bug fixes, and defaults to Kubernetes 1.36.1.
Breaking Changes
- The default node image is now
kindest/node:v1.36.1@sha256:3489c7674813ba5d8b1a9977baea8a6e553784dab7b84759d1014dbd78f7ebd5 - New node images requiring upgrading kind to
kind load ...: Due to a containerd upgrade, you must upgradekindto this release or newer to usekind load ...with the newly published node images. As always, we cannot gurantee full compatibility of node images between kind releases. You can use the digests from previous releases, upgrade kind, or build your own node-images. - kubeadm v1beta4 config format is now used for Kubernetes 1.36.0+ If you are using versioned config patches, you must update to target v1beta4. Unversioned patches kind will attempt to convert as needed (more below in New Features). This change is required for Kubernetes 1.37+ which drops kubeadm v1beta3 config.
- Adoption of Envoy for Load Balancing in multi-control-plane node clusters: HAProxy has been replaced by Envoy (
docker.io/envoyproxy/envoy:v1.36.2) as the load balancer in multi-control-plane (HA) clusters. If you rely on custom HAProxy loadbalancer configurations or images, please note that Envoy is now used. - cgroup v1 warning: A warning is now printed if cgroup v1 is detected on the host. Kubernetes has deprecated support for cgroup v1, and at some point in the future KIND releases / node-images will also drop support for cgroup v1.
New Features
- kubeadm v1beta4 configuration support: KIND now uses the
v1beta4config format for Kubernetesv1.36.0+while maintainingv1beta3forv1.23.0up tov1.35.x, andv1beta2for older versions. - Custom Merging & Version-Awareness for Kubeadm Config Patches:
- KIND now automatically translates old-style map-based
extraArgs/kubeletExtraArgspatches to the list-basedv1beta4format when targetingv1beta4configs. - Config patches now append to
extraArgs/kubeletExtraArgs/certSANsreliably. To overwrite or make other more precise patching, use json6902 patches.
- KIND now automatically translates old-style map-based
- Support for containerd config v4 format: Enabled support for containerd's config v4 format in
kind loadand snapshotter parsing, which is required for newer containerd versions. - Building Node Images from CI Artifacts: Added support to build node images from Kubernetes CI artifacts (resolving endpoints like
https://dl.k8s.io/ci/latest.txtor CI build prefixes). - Support for containerd version-aware containerd config patching: Like kubeadmConfigPatches, containerd config patching is now aware of
versionand if specified in patches will only apply patches that match the containerd config being used. - Assorted dependency updates.
Images pre-built for this release:
- v1.36.1:
kindest/node:v1.36.1@sha256:3489c7674813ba5d8b1a9977baea8a6e553784dab7b84759d1014dbd78f7ebd5 - v1.35.5:
kindest/node:v1.35.5@sha256:ce977ae6d65918d0b58a5f8b5e940429c2ce42fa3a5619ec2bbc60b949c0ac95 - v1.34.8:
kindest/node:v1.34.8@sha256:02722c2dedddcfc00febf5d27fbeb9b7b2c14294c82109ff4a85d89ac9ba3256 - v1.33.12:
kindest/node:v1.33.12@sha256:3f5c8443c620245e4d355cfe09e96a91ead32ceaa569d3f1ca9edf0cb2fe2ff4
NOTE: You must use the
@sha256digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.Fixes
- Fix permission error when creating pods with
hostUsers: false(Kubernetes 1.36+). - Handle registry ports correctly in image normalization logic (e.g., registry running on ports like
localhost:5000/...). - Handle empty port mapping listen addresses correctly (defaults to wildcard address).
- Skip
/dev/mappermount on rootless Docker. - Assorted documentation fixes and improvements.
See
- The default node image is now
- v0.31.02025-12-18 · 2025-12-18 00:56 UTC
查看更新说明
This release contains dependency updates and defaults to Kubernetes 1.35.0.
Please take note of the breaking changes from Kubernetes 1.35, and how to prepare for future changes to move off of the deprecated kubeam v1beta3 in favor of v1beta4. We will include updated reminders for both again in subsequent releases.
The default node image is now
kindest/node:v1.35.0@sha256:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31fKubernetes will be removing cgroup v1 support, and therefore kind node images at those versions will also be dropping support.
You can read more about this change in the Kubernetes release blog: https://kubernetes.io/blog/2025/12/17/kubernetes-v1-35-release/#removal-of-cgroup-v1-support
If you must use kind on cgroup v1, we recommend using an older Kubernetes release for the immediate future, but we also strongly recommend migrating to cgroup v2.
In the near future as Kubernetes support dwindles, KIND will also clean up cgroup v1 workarounds and drop support in future kind releases and images, regardless of Kubernetes version.
Most stable linux distros should be on cgroupv2 out of the box.
This is a reminder to use pinned images by digest, see the note below about images for this release.
WARNING: Future kind releases will adopt kubeadm v1beta4 configuration, kubeadm v1beta4 has a breaking change to
extraArgs: https://kubernetes.io/blog/2024/08/23/kubernetes-1-31-kubeadm-v1beta4/.If you use the
kubeadmConfigPatchesfeature then you may need to prepare for this change. We recommend that you use versioned config patches that explicitly match the version required.KIND uses kubeadm v1beta3 for Kubernetes 1.23+, and will likely use v1beta4 for Kubernetes 1.36+ The exact version is TBD pending work to fix this but expected to be 1.36. It will definitely be an as-of-yet-unreleased Kubernetes version to avoid surprises, and it will not be on a patch-release boundary.
KIND may still work with older Kubernetes versions at v1beta2, but we no longer test or actively support these as Kubernetes only supports 1.32+ currently: https://kubernetes.io/releases/
You likely only need v1beta3 + v1beta4 patches, you can take your existing patches that work with v1beta3, explicitly set
apiVersion: kubeadm.k8s.io/v1beta3in the patch at the top level, and make another copy for v1beta4. The v1beta4 patch will need to moveextraArgsfrom a map to a list, for examples see: https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/For a concrete example of kind config with kubeadm config patch targeting both v1beta3 and v1beta4, consider this simple kind config that sets verbosity of the apiserver logs:
kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 kubeadmConfigPatches: # patch for v1beta3 (1.23 ...) - | kind: ClusterConfiguration apiVersion: kubeadm.k8s.io/v1beta3 apiServer: extraArgs: "v": "4" # patch for v1beta4 (future) - | kind: ClusterConfiguration apiVersion: kubeadm.k8s.io/v1beta4 apiServer: extraArgs: - name: "v" value: "4"If you only need to target a particular release, you can use one version.
If you only need to target fields that did not change between kubeadm beta versions, you can use a versionless patch, which may be more convenient, but we cannot guarantee there will be no future kubeadm config breaking changes.
- Assorted unspecified dependency updates
Images pre-built for this release:
- v1.35.0: `kindest/node:v1.35.0@s
- v0.30.02025-08-27 · 2025-08-27 17:45 UTC
查看更新说明
This is small release containing patched dependencies and Kubernetes 1.34, as well as a bugfix for Kubernetes v1.33.0+ cluster reboots.
The default node image is now
kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a- Updated to containerd 2.1.4
Images pre-built for this release:
- v1.34.0:
kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a - v1.33.4:
kindest/node:v1.33.4@sha256:25a6018e48dfcaee478f4a59af81157a437f15e6e140bf103f85a2e7cd0cbbf2 - v1.32.8:
kindest/node:v1.32.8@sha256:abd489f042d2b644e2d033f5c2d900bc707798d075e8186cb65e3f1367a9d5a1 - v1.31.12:
kindest/node:v1.31.12@sha256:0f5cc49c5e73c0c2bb6e2df56e7df189240d83cf94edfa30946482eb08ec57d2
NOTE: You must use the
@sha256digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.See also:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718
- Fix an issue with rebooting v1.33.0+ clusters https://github.com/kubernetes-sigs/kind/issues/3941
- Add priority class system-critical to kindnetd
- Fix HA control-plane loadbalancer for podman https://github.com/kubernetes-sigs/kind/pull/3962
- Fix node-image builds with relative source paths
Committers for this release:
- @BenTheElder
- @dims
- @k8s-ci-robot
- @oduludo
- @stmcginnis
- @tchap
- @tom1299
- v0.29.02025-05-21 · 2025-05-21 01:54 UTC
查看更新说明
This is a quick security release to pickup the containerd 2.1.1 CVE-2025-47290 fix. See v0.28.0 (release days ago!) for full release notes with recent changes: https://github.com/kubernetes-sigs/kind/releases/tag/v0.28.0
The default node image is now
kindest/node:v1.33.1@sha256:050072256b9a903bd914c0b2866828150cb229cea0efe5892e2b644d5dd3b34f- Updated to containerd 2.1.1
Images pre-built for this release:
- v1.33.1:
kindest/node:v1.33.1@sha256:050072256b9a903bd914c0b2866828150cb229cea0efe5892e2b644d5dd3b34f - v1.32.5:
kindest/node:v1.32.5@sha256:e3b2327e3a5ab8c76f5ece68936e4cafaa82edf58486b769727ab0b3b97a5b0d - v1.31.9:
kindest/node:v1.31.9@sha256:b94a3a6c06198d17f59cca8c6f486236fa05e2fb359cbd75dabbfc348a10b211 - v1.30.13:
kindest/node:v1.30.13@sha256:397209b3d947d154f6641f2d0ce8d473732bd91c87d9575ade99049aa33cd648
NOTE: You must use the
@sha256digest to guarantee an image built for this release, until such a time as we switch to a different tagging scheme. Even then we will highly encourage digest pinning for security and reproducibility reasons.See also:
- https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster
- https://kind.sigs.k8s.io/docs/user/quick-start/#building-images
NOTE: These node images support amd64 and arm64, both of our supported platforms. You must use the same platform as your host, for more context see https://github.com/kubernetes-sigs/kind/issues/2718
- Fixes containerd CVE-2025-47290 / GHSA-cm76-qm8v-3j95
Committers for this release:
- @BenTheElder
- @k8s-ci-robot
- @stmcginnis
(Please see v0.28.0 https://github.com/kubernetes-sigs/kind/releases/tag/v0.28.0#Contributors)
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
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, podman or nerdctl installed go install 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.
kubetestintegration 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 go install sigs.k8s.io/[email protected].
NOTE: please use the latest go to do this. KIND is developed with the latest stable go, see .go-version for the exact version we're using.
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 Linux:
# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.33.0/kind-$(uname)-amd64
# For ARM64
[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.33.0/kind-$(uname)-arm64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
On macOS via Homebrew:
brew install kind
On macOS via MacPorts:
sudo port selfupdate && sudo port install kind
On macOS via Bash:
# For Intel Macs
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.33.0/kind-darwin-amd64
# For M1 / ARM Macs
[ $(uname -m) = arm64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.33.0/kind-darwin-arm64
chmod +x ./kind
mv ./kind /some-dir-in-your-PATH/kind
On Windows:
curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.33.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:
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:
- Kubernetes Slack in the #kind channel
- filing an issue against this repo
- The Kubernetes SIG-Testing Mailing List
Current maintainers are @aojea, @BenTheElder, and @stmcginnis - 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 or docker, 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.