使用 kind 快速搭建 kubernetes 環境


使用 kind 快速搭建 Kubernetes 環境

Intro

kind(Kubernetes IN Docker) 是一個基於 docker 構建 Kubernetes 集群的工具,非常適合用來在本地搭建基於 Kubernetes 的開發/測試環境。

想寫一篇 kind 的文章很久了,但是之前的 kind 都會有一個問題,每次系統重啟或 docker daemon 重啟的時候會導致原來的創建的集群不可用,需要重新創建才可以,從 0.8 版本開始,kind 不再需要重新創建集群了,基於這個集群的資源部署也會自動重啟,無需再手動重新部署了,具體可以參考 Issue https://github.com/kubernetes-sigs/kind/issues/148,就在前幾天 kind 0.8 版本發布了於是打算寫一篇介紹 kind 的文章

Install

Kind 的安裝不包括 kubectl,你需要獨立安裝 kubectl 來通過命令行來操作 kubernetes 集群,kubectl 的安裝可以參考: https://kubernetes.io/docs/tasks/tools/install-kubectl/

通過 https://github.com/kubernetes-sigs/kind/releases/latest 獲取最新的 release,根據自己的系統類型選擇相應的系統 release,下載 release 之后重命名為 kind(Windows 系統 release 重命名為 kind.exe),然后將其放在某一個目錄下,並要確保這個目錄在系統 PATH 中以方便的使用,可以放在 usr/bin 目錄下(默認已經在系統 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 來操作容器,可以參考 https://github.com/kubernetes-sigs/cri-tools

More

除了搭建開發測試環境之外,kind 也支持創建高可用的 kuberneters 集群,具體可以參考官方文檔

kind 創建集群成功之后,就可以向 kubernetes 集群部署資源了,開始你的 Kubernetes 之旅吧~

Reference


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM