使用 kind 快速搭建 kubernetes 环境
使用 kind 快速搭建 kubernetes 环境
intro
kind(kubernetes in docker) 是一个基于 docker 构建 kubernetes 集群的工具,非常适合用来在本地搭建基于 kubernetes 的开发/测试环境。
想写一篇 kind 的文章很久了,但是之前的 kind 都会有一个问题,每次系统重启或 docker daemon 重启的时候会导致原来的创建的集群不可用,需要重新创建才可以,从 0.8 版本开始,kind 不再需要重新创建集群了,基于这个集群的资源部署也会自动重启,无需再手动重新部署了,具体可以参考 issue ,就在前几天 kind 0.8 版本发布了于是打算写一篇介绍 kind 的文章
install
kind 的安装不包括 kubectl,你需要独立安装 kubectl 来通过命令行来操作 kubernetes 集群,kubectl 的安装可以参考:
通过 获取最新的 release,根据自己的系统类型选择相应的系统 release,下载 release 之后重命名为 kind(windows 系统 release 重命名为 kind.exe),然后将其放在某一个目录下,并要确保这个目录在系统 path 中以方便的使用,linux 系统中可能需要配置文件权限
sudo chmod +x kind
操作 kuberneters 集群
使用 kind 创建 kubernetes 集群非常的方便,只需要一行命令即可
kind create cluster
删除集群
kind delete cluster
默认集群名称是 "kind",如果要创建多个或者指定集群名称,可以指定 name 参数:
kind create cluster --name=k8s-cluster1
删除集群
kind delete cluster --name=k8s-cluster1
创建集群成功之后,就可以使用 kubectl 来操作 k8s 集群了
获取 k8s 集群所有资源示例:
既然说是基于 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 来操作容器,可以参考
more
除了搭建开发测试环境之外,kind 也支持创建高可用的 kuberneters 集群,具体可以参考官方文档
kind 创建集群成功之后,就可以向 kubernetes 集群部署资源了,开始你的 kubernetes 之旅吧~