什么是kind
kind是使用Docker容器化节点运行本地Kubernetes集群的工具。kind主要用于测试Kubernetes本身,但也可用于本地开发或CI。
kind包括:
- 实现创建集群、构建映像等的Go软件包。
- 在这些软件包上构建的命令行接口(kind)。
- 用于运行systemd、Kubernetes等的Docker映像。
- kubetest集成也建立在这些软件包(WIP)的基础上
kind用kubeadm引导每个“节点”。有关更多详细信息,请参阅官方设计文档。
安装kind
注意:kind不需要使用
kubectl命令,但如果没有kubectl命令就无法实现文档中的某些例子。可以使用homebrew进行kubectl的快速安装:
brew install kubectl检查
kubectl的版本以确保安装成功,可以使用:
kubectl version --client
安装kind的方法有很多,这里推荐使用Homebrew进行安装:
brew install kind
同样,检查一下kind的版本已验证是否安装成功:
kind version

创建集群
要使用kind,你还需要安装docker,docker是一个桌面级应用,安装方式可其他app一致,下载dmg文件双击安装即可。 安装完成后,在设置中勾选启用Kubernetes,再重启应用,就可以使用kind来创建集群了
![]()
这里补充一下,如果
Apply&Restart点击之后Kubernetes还是没启起来的话,可以点击设置旁边的Troubleshoot按钮(即像爬虫一样的图标),重启整个Docker桌面应用。
创建两个简单的Kubernetes集群,默认的集群名称是kind,你也可以使用--name标识来指定集群的名称:
kind create cluster # Default cluster context name is kind
kind create cluster --name kind-2

去查看已经创建的集群,可以使用命令:
kind get clusters

为了与特定的集群交互,只需要在kubectl中指定集群名即可(cluster-info显示集群信息):
kubectl cluster-info --context kind-kind-2

kubectl cluster-info dump --context kind-kind-2显示的信息过多,这里就不全部截图展示了
删除集群
如果使用kind create cluster来创建集群,删除集群也会同样简单:
kind delete cluster
如果没有指定--name,默认删除的是集群名为kind的集群

查看集群信息
查看集群中的node信息:
kind get nodes --name kind-2
查看node中的镜像Image信息:
docker exec -it kind-2-control-plane crictl images

创建镜像(未完成)
首先修改Docker桌面客户端的配置,需要至少6GB的RAM专用于运行Docker引擎的虚拟机(VM),官方建议给到8GB,我这里电脑配置不够,讲究着用吧😭
kind通过使用Docker容器作为“node”来运行本地Kubernetes集群。“node”镜像是一个Docker的镜像,用于运行嵌套容器、systemd和Kubernetes组件。构建“node”镜像的逻辑可以在pkg/build中找到,我们可以简单地用kind命令来构建:
kind build node-image
为集群装载镜像(未完成)
如果使用一个命名的集群,在装载Docker镜像时需要指定集群的名称:
kind load docker-image my-custom-image-0 my-custom-image-1 --name kind-2