kind是另外一个Kubernetes SIG项目,但它与minikube有很大区别。它能够将集群迁移到Docker容器中,这与生成虚拟机相比,启动速度大大加快。简而言之,kind是一个使用Docker容器节点运行本地Kubernetes集群的工具(CLI)。node
接下来,咱们开始吧!shell
想要顺利完成本教程,你须要在本地系统中准备好如下程序:工具
Go学习
须要运行的Docker服务测试
使用如下命令下载和安装kind二进制文件:ui
GO111MODULE=”on” go get sigs.k8s.io/kind@v0.8.1
> kind version kind v0.8.1 go1.14.2 darwin/amd64
如今,咱们应该可以使用kind
CLI来启动一个Kubernetes集群:操作系统
Usage: kind [command]Available Commands: build Build one of [node-image] completion Output shell completion code for the specified shell create Creates one of [cluster] delete Deletes one of [cluster] export Exports one of [kubeconfig, logs] get Gets one of [clusters, nodes, kubeconfig] help Help about any command load Loads images into nodes version Prints the kind CLI version
在本文中,咱们将聚焦于create
、get
和delete
命令。code
执行如下命令便可建立一个集群:教程
kind create cluster
ci
> kind create cluster Creating cluster "kind" ... ✓ Ensuring node image (kindest/node:v1.18.2) 🖼 ✓ Preparing nodes 📦 ✓ Writing configuration 📜 ✓ Starting control-plane 🕹️ ✓ Installing CNI 🔌 ✓ Installing StorageClass 💾 Set kubectl context to "kind-kind" You can now use your cluster with:kubectl cluster-info --context kind-kind Have a nice day! 👋
将经过拉取最新的Kubernetes节点(v 1.18.2)来建立一个Kubernetes集群。刚刚咱们已经建立了一个v 1.18.2的Kubernetes集群。
在建立集群的过程当中若是咱们没有--name
参数,那么集群名称将会默认设置为kind
。
咱们能够传--image
参数来部署一个特定版本的Kubernetes集群。
使用的命令为:
kind create cluster --image kindest/node:v1.15.6
Creating cluster "kind" ... ✓ Ensuring node image (kindest/node:v1.15.6) 🖼 ✓ Preparing nodes 📦 ✓ Writing configuration 📜 ✓ Starting control-plane 🕹️ ✓ Installing CNI 🔌 ✓ Installing StorageClass 💾 Set kubectl context to "kind-kind" You can now use your cluster with:kubectl cluster-info --context kind-kind Have a nice day! 👋
输入命令:kind get clusters
> kind get clusters kind kind-1.15.6
这应该列出咱们此前建立的两个不一样K8S版本的集群。
建立集群以后,kubectl会指出最近建立的K8S集群。
让咱们来检查一下全部可用的上下文。
> kubectl config get-contexts CURRENT NAME CLUSTER kind-kind kind-kind * kind-kind-1.15.6 kind-kind-1.15.6
从输出中,咱们能够获得结论,kubectl上下文目前已经被设置为最新的集群,即kind-1.15.6。(上下文名称是以kind为前缀的)
要将kubectl上下文设置为版本是1.18.2的kind
集群,咱们须要进行以下操做:
> kubectl config set-context kind-kind Context "kind-kind" modified.
要验证kubectl是否指向正确的集群,咱们须要检查节点:
> kubectl get nodes NAME STATUS ROLES AGE VERSION kind-1.18.2-control-plane Ready master 8m20s v1.18.2
要删除一个特定的群集,能够在--name
参数中把集群名称传递给删除命令。
命令为:kind delete cluster --name kind
> kind delete cluster --name kind Deleting cluster "kind" ...
若是你想一次性删除全部集群,请执行:
kind delete clusters –all
> kind delete clusters --all Deleted clusters: ["kind-1.15.6"]
kind(Kubernetes in Docker)是一个基于Docker构建的Kubernetes集群的工具。它通过CNCF认证,而且支持多节点集群,包括高可用集群。而且支持Linux、macOS以及Windows操做系统,操做简单,学习成本低,很是适合用来在本地搭建基于Kubernetes的开发/测试环境。