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的開發/測試環境。