溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

超好用的本地Kubernetes部署工具分別有哪些

發(fā)布時(shí)間:2021-11-01 10:23:12 來(lái)源:億速云 閱讀:171 作者:柒染 欄目:系統(tǒng)運(yùn)維

超好用的本地Kubernetes部署工具分別有哪些,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

探討這個(gè)議題之前,我們要先來(lái)問(wèn)一個(gè)問(wèn)題是:

我們本地開(kāi)發(fā)者,真的需要一個(gè) Kuberntees 嗎? 這個(gè)是必要的嗎?

我認(rèn)為這個(gè)答案是非必要,并不是所有的本地開(kāi)發(fā)者都需要有一個(gè)獨(dú)立的 Kubernetes 集群來(lái)使用,但是如果有符合下列需求之一,就會(huì)需要?jiǎng)?chuàng)建一個(gè)本地的 Kubernetes 集群:

  1.  開(kāi)發(fā)的應(yīng)用程式與 Kubernetes 息息相關(guān),譬如該應(yīng)用程式會(huì)用到 Kubernetes API,這類(lèi)型應(yīng)用程式需要部署到 Kubernetes 內(nèi)才可以發(fā)揮其功用。

  2.  開(kāi)發(fā)的應(yīng)用程式需要用到一些 Kubernetes 的資源才能夠看出差異,譬如想確認(rèn) Kubernetes HPA 發(fā)生時(shí)應(yīng)用程式是否能夠如預(yù)期運(yùn)作。這類(lèi)型的應(yīng)用程式也會(huì)需要有個(gè)本地的 Kubernetes 集群才能測(cè)試。

  3.  開(kāi)發(fā)人員本身是公司的基礎(chǔ)設(shè)施維運(yùn)人員,譬如要設(shè)計(jì) Jenkins 與 Kubernetes 的連動(dòng)測(cè)試,可能會(huì)需要在本地先進(jìn)行相關(guān)測(cè)試之后才會(huì)正式上到公司環(huán)境。好處可能是可以先不用開(kāi)云端機(jī)器,可以先省錢(qián),都用 VM 來(lái)測(cè)試相關(guān)功能。

  4.  開(kāi)發(fā)的應(yīng)用程序有很多依賴(lài)性,譬如需要 Redis, Kafaka, Memcached 等,這種情況下也許有個(gè)本地的 Kuberentes 會(huì)更加比較方便。

除了上述理由之外(一定還有其他情境,這里就不一一列舉),我認(rèn)為剩下的情境應(yīng)該都可以透過(guò) Docker/Docker-Compose 來(lái)完成相關(guān)環(huán)境搭建完成后供開(kāi)發(fā)者測(cè)試。

如果你今天深思熟慮后,確認(rèn)真的有需要于本地測(cè)試 Kuberntes 的需求,我們就可以來(lái)思考,對(duì)于一個(gè)開(kāi)發(fā)者,我希望可以怎么使用這個(gè)本地的 Kubernetes。

對(duì)我個(gè)人來(lái)說(shuō),我希望這套解決方案能夠有下列特性:

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2.  容易設(shè)定與搭建,最好幾個(gè)按鈕就好

  3.  能夠用指令完成,不需要有任何 UI 介入

  4.  能夠模擬多節(jié)點(diǎn)

  5.  最好能夠把上述的一切都包成一個(gè)腳本,一個(gè)命令運(yùn)行完畢

接下來(lái)我們推薦四套不同的開(kāi)源軟件:Kubeadm, Minikube, KIND, K3D。

Kubeadm

Kubeadm 是由官方維護(hù)的開(kāi)源項(xiàng)目,我認(rèn)為是非常簡(jiǎn)單的一個(gè)測(cè)試方式,其本身會(huì)透過(guò) systemd 的方式維護(hù) Kubelet。

之后再透過(guò) container 的方式啟動(dòng) controller/scheduler/kube-proxy 等 Kubernetes 核心組件。

使用方面 Kubeadm 本身并不困難,可以透過(guò)指令列的方式來(lái)創(chuàng)建一切所需資源,唯一要注意的是安裝完畢之后還需要人為手動(dòng)安裝 CNI 的解決方案,整個(gè) Kubernetes 才算是安裝完畢。

Kubeadm 本身也支持架設(shè)多節(jié)點(diǎn)的集群,只是在使用上沒(méi)有這么方便,需要先創(chuàng)建 Master 節(jié)點(diǎn),并且產(chǎn)生相對(duì)應(yīng)的 token/key,接下來(lái)其他節(jié)點(diǎn)使用 kubeadm 的指令加入到已經(jīng)創(chuàng)建的集群中。

總體來(lái)說(shuō), Kubeadm 能夠滿(mǎn)足上述要求,但是實(shí)作上會(huì)稍嫌麻煩,特別是多節(jié)點(diǎn)的情況下還要處理 Token/key 的信息,此外 CNI 的安裝也需要自己處理,但是作為一個(gè)單節(jié)點(diǎn)的測(cè)試環(huán)境也算是容易上手。

Minikube

Minikube 也是由官方維護(hù)的項(xiàng)目,其本身的架構(gòu)一開(kāi)始是依賴(lài)于 VM (虛擬機(jī)器) 來(lái)幫使用者創(chuàng)建一個(gè)全新測(cè)試的 Kubernetes 集群,任何平臺(tái)的開(kāi)發(fā)者都可以輕松使用,因?yàn)楸澈蠖紩?huì)幫你起一個(gè)全新的 VM 。當(dāng) VM 起來(lái)之后,其會(huì)透過(guò) kubeadm 的方式幫助你建立與設(shè)定 Kubernetes 集群,并且?guī)湍惆?CNI 等指令都安裝完成。

除了依賴(lài) VM 之外,其也有提供不同底層,譬如 none 就可以直接在該機(jī)器上透過(guò) kubeadm 來(lái)建立,基本上整個(gè)架構(gòu)會(huì)變得跟 kubeadm 非常類(lèi)似,比較大的差異是 CNI 也會(huì)一并幫你安裝完成。

此外 Mnikube 本身也有一些屬于自己的套件,可以把一些功能整包裝進(jìn)去,對(duì)于這個(gè)功能我的想法是不好也不壞,不壞的地方在于提供一個(gè)環(huán)境讓使用者去測(cè)試功能,確實(shí)方便,不好的地方在于可能會(huì)讓使用者以為這些功能都是 Kubernetes 本來(lái)就有的,反而會(huì)有所誤解,甚至對(duì)于其背后使用原理都不太清楚就草草學(xué)習(xí)完畢。

總體來(lái)說(shuō), Minikube 也可以滿(mǎn)足上述的部分要求,多節(jié)點(diǎn)的部分可能就會(huì)跑起來(lái)多個(gè) VM 來(lái)建立,消耗的資源會(huì)相對(duì)多一點(diǎn)。

KIND

KIND 的全名是 Kubernetes In Docker,顧名思義就是把 Kubernetes 的節(jié)點(diǎn)都用 Docker 的方式運(yùn)行起來(lái),每一個(gè) Docker Container 就是一個(gè) Kubernetes 節(jié)點(diǎn),可以充當(dāng) Worker 也可以充當(dāng) Master。

使用方面非常簡(jiǎn)單,使用 KIND 的指令搭配一個(gè)設(shè)置檔案就可以輕松地建立起 Kubernetes 集群,由于全部的操作都是由 KIND 完成,所以要建立多節(jié)點(diǎn)的方式也非常簡(jiǎn)單,只要設(shè)置文件中描述需要多少節(jié)點(diǎn)以及各自什么身份,接下來(lái)就一個(gè)指令搞定全部,連 CNI 方面都不需要處理, KIND 會(huì)自行搞定。

總體來(lái)說(shuō), KIND 可以滿(mǎn)足上述所有需求,多節(jié)點(diǎn)的部分則是用 Docker 來(lái)管理,因此在資源與啟動(dòng)速度方面都有良好的效果,搭配 Vagrant 的方式就可以輕松打包一個(gè)多節(jié)點(diǎn)的 VM 環(huán)境供測(cè)試者開(kāi)發(fā),確實(shí)方便。

K3D

K3D 是由 Rancher 所開(kāi)發(fā) K3S 的 Docker 版本, K3S 是一個(gè)輕量級(jí)的 Kubernetes 平臺(tái),本身適合用在一些低運(yùn)算資源系統(tǒng)上。

而 K3D 直接將 K3S 給移植到 Docker 之中,讓使用者可以更方便的創(chuàng)建一個(gè) K3S 集群。

使用起來(lái)也是很簡(jiǎn)單的,整個(gè)主要架構(gòu)都在 k3d 這個(gè)執(zhí)行文件上面,使用該指令搭配不同的參數(shù)就可以快速地建立起多節(jié)點(diǎn)的 Kubernetes Cluster,此外也可以透過(guò)指令動(dòng)態(tài)增加節(jié)點(diǎn),使用上也是非常方便。

與 KIND一樣, CNI 的部分也會(huì)一并被處理,所以使用者真的只需要一個(gè)指令就可以處理好所有的事情,總體來(lái)說(shuō), K3D 可以滿(mǎn)足上述所有要求,優(yōu)點(diǎn)基本上跟 KIND 完全類(lèi)似,搭配上 Vagrant 真的可以輕松地建立起多節(jié)點(diǎn)的模擬環(huán)境。

看完上述內(nèi)容,你們掌握超好用的本地Kubernetes部署工具分別有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI