kind

kubernetes-sigsApache-2.0活跃维护

用 Docker 容器快速拉起本地 Kubernetes 集群,方便测试 K8s 本身或验证集群配置,无需虚拟机。

Kubernetes IN Docker - local clusters for testing Kubernetes

v0.33.0发布于 2026-08-26 21:58 UTC15,607star +8 / 7 天1,831fork同步于 2026-11-10 17:26 UTC

怎么上手

由 README 提炼,执行前请确认
go install sigs.k8s.io/[email protected] && kind create cluster
硬件要求按 README 说明

README 未说明具体硬件要求,只需本机已安装并运行 Docker(也支持 podman、nerdctl)

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用 Docker 容器当节点跑本地 Kubernetes 集群,专为测试 K8s 本身和 CI 场景设计

用 Docker 容器快速拉起本地 Kubernetes 集群,方便测试 K8s 本身或验证集群配置,无需虚拟机。

核心能力

  • 用 Docker 容器模拟 Kubernetes 节点
  • 基于 kubeadm 引导每个节点
  • 支持多节点及高可用集群
  • 可从 Kubernetes 源码构建节点镜像
  • 支持 Linux、macOS 和 Windows

容易踩的坑

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

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.33.0
  1. 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 @sha256 digest 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:

    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!

  2. 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 upgrade kind to this release or newer to use kind 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 v1beta4 config format for Kubernetes v1.36.0+ while maintaining v1beta3 for v1.23.0 up to v1.35.x, and v1beta2 for older versions.
    • Custom Merging & Version-Awareness for Kubeadm Config Patches:
      • KIND now automatically translates old-style map-based extraArgs / kubeletExtraArgs patches to the list-based v1beta4 format when targeting v1beta4 configs.
      • Config patches now append to extraArgs / kubeletExtraArgs / certSANs reliably. To overwrite or make other more precise patching, use json6902 patches.
    • Support for containerd config v4 format: Enabled support for containerd's config v4 format in kind load and 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.txt or CI build prefixes).
    • Support for containerd version-aware containerd config patching: Like kubeadmConfigPatches, containerd config patching is now aware of version and 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 @sha256 digest 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/mapper mount on rootless Docker.
    • Assorted documentation fixes and improvements.

    See

  3. 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:452d707d4862f52530247495d180205e029056831160e22870e37e3f6c1ac31f

    Kubernetes 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 kubeadmConfigPatches feature 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/v1beta3 in the patch at the top level, and make another copy for v1beta4. The v1beta4 patch will need to move extraArgs from 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
  4. 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 @sha256 digest 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:

    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

    Committers for this release:

    • @BenTheElder
    • @dims
    • @k8s-ci-robot
    • @oduludo
    • @stmcginnis
    • @tchap
    • @tom1299
  5. 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 @sha256 digest 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:

    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

    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)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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:

    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:

    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.