什么是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