kind(Kubernetes IN Docker) 是一个基于 docker 构建 Kubernetes 集群的工具,很是适合用来在本地搭建基于 Kubernetes 的开发/测试环境。linux
想写一篇 kind 的文章好久了,可是以前的 kind 都会有一个问题,每次系统重启或 docker daemon 重启的时候会致使原来的建立的集群不可用,须要从新建立才能够,从 0.8 版本开始,kind 再也不须要从新建立集群了,基于这个集群的资源部署也会自动重启,无需再手动从新部署了,具体能够参考 Issue https://github.com/kubernetes-sigs/kind/issues/148,就在前几天 kind 0.8 版本发布了因而打算写一篇介绍 kind 的文章git
Kind 的安装不包括 kubectl,你须要独立安装 kubectl 来经过命令行来操做 kubernetes 集群,kubectl 的安装能够参考: https://kubernetes.io/docs/tasks/tools/install-kubectl/github
经过 https://github.com/kubernetes-sigs/kind/releases/latest 获取最新的 release,根据本身的系统类型选择相应的系统 release,下载 release 以后重命名为 kind(Windows 系统 release 重命名为 kind.exe),而后将其放在某一个目录下,并要确保这个目录在系统 PATH 中以方便的使用,linux 系统中可能须要配置文件权限docker
sudo chmod +x kind
使用 kind 建立 Kubernetes 集群很是的方便,只须要一行命令便可bash
kind create cluster
删除集群工具
kind delete cluster
默认集群名称是 "kind",若是要建立多个或者指定集群名称,能够指定 name 参数:测试
kind create cluster --name=k8s-cluster1
删除集群ui
kind delete cluster --name=k8s-cluster1
建立集群成功以后,就可使用 kubectl 来操做 k8s 集群了命令行
获取 k8s 集群全部资源示例:code
既然说是基于 docker 的,那么咱们再来看下 docker 资源,来验证一下是否真的是基于 docker 的
docker ps
能够看到 docker 里有一个 container,而 kind 建立的集群就是基于这个 container 的,若是你直接删掉了这个 container,经过 kind 建立的 k8s 集群也会有问题,
再来看一下 network,运行 docker network ls
能够看到有一个名称为 kind 的 network
咱们能够进一步探究 kind-control-plane(就是上面的 docker container)
经过 docker exec kind-control-plane crictl ps
获取这个容器内部的运行容器列表,这个容器内部经过 crictl 来操做容器,能够参考 https://github.com/kubernetes-sigs/cri-tools
除了搭建开发测试环境以外,kind 也支持建立高可用的 kuberneters 集群,具体能够参考官方文档
kind 建立集群成功以后,就能够向 kubernetes 集群部署资源了,开始你的 Kubernetes 之旅吧~