使用Rancher Server部署本地多節(jié)點(diǎn)K8S集群

當(dāng)我第一次開始我的Kubernetes之旅時(shí),我一直在尋找一種設(shè)置本地部署環(huán)境的方式。很多人常常會使用minikube或microk8s,這兩者非常適合新手在單節(jié)點(diǎn)集群環(huán)境下進(jìn)行操作。但當(dāng)我已經(jīng)了解了基礎(chǔ)知識之后,這兩者顯然不太夠用,我需要進(jìn)一步尋找能夠運(yùn)行本地多節(jié)點(diǎn)集群、與生產(chǎn)環(huán)境更相似的平臺。為此,我查閱了許多參考資料,最后我找到了Rancher Server。接下來,我要介紹我是如何設(shè)置我的本地K8S多節(jié)點(diǎn)集群的。

image

準(zhǔn)備master節(jié)點(diǎn)和worker節(jié)點(diǎn)的虛擬機(jī)

image

上圖顯示了集群的架構(gòu),一個(gè)master節(jié)點(diǎn)和3個(gè)worker節(jié)點(diǎn)。要嘗試諸如使用ingress controller進(jìn)行負(fù)載均衡、會話保持、host親和性等跨節(jié)點(diǎn)功能,這是最低的配置。

Rancher Server的安裝并不復(fù)雜,它被打包為一個(gè)docker鏡像,并且可以作為一個(gè)容器運(yùn)行。一個(gè)節(jié)點(diǎn)的基本配置是運(yùn)行在Linux虛擬機(jī)上的docker CE 守護(hù)進(jìn)程。在本例中,我選擇使用Ubuntu 18.04 LTS(具體的節(jié)點(diǎn)要求請參考Rancher的官方文檔:https://rancher.com/docs/rancher/v2.x/en/installation/requirements/ )。當(dāng)我完成第一個(gè)VM設(shè)置時(shí),我直接將其復(fù)制到另外三個(gè)中。如果你和我的操作一樣,可以參考下方兩個(gè)tips:

最終,4個(gè)節(jié)點(diǎn)都在我的電腦(i5,24G RAM)上啟動(dòng),并分配以下資源。

  • Master節(jié)點(diǎn)(2 core、4G RAM、Ubuntu 18.04 + Docker CE 18.09) x 1

  • Worker節(jié)點(diǎn)(2 core, 3G RAM, Ubuntu 18.04 + Docker CE 18.09) x 3

在master節(jié)點(diǎn)上啟動(dòng)Rancher server

sudo docker run --restart=unless-stopped \
  -p 81:80 -p 444:443 rancher/rancher

以上命令可以啟動(dòng)Rancher server容器,并且將其運(yùn)行在master節(jié)點(diǎn)上。默認(rèn)狀態(tài)下,nginx ingress controller會嵌入到worker節(jié)點(diǎn)中,并且綁定端口80和443。因此我將Rancger server發(fā)布到端口81和444或其他端口,以避免端口沖突。

完成Rancher server初始設(shè)置

image

首先,使用master節(jié)點(diǎn)IP地址和端口444啟動(dòng)Rancher server控制臺,它會要求設(shè)置管理員密碼。

image

接著,確認(rèn)worker節(jié)點(diǎn)到達(dá)Rancher server的URL。這里為了方便我直接使用master節(jié)點(diǎn)IP地址作為URL。完成了初始設(shè)置后,Rancher server就可以添加新集群了。

創(chuàng)建一個(gè)新的K8S集群和master節(jié)點(diǎn)

image

因?yàn)槲蚁胍诒镜靥摂M機(jī)上運(yùn)行K8S集群而不是在云端,所以選擇“自定義”的選項(xiàng)(即上方說明為“ From my own existing nodes”),然后新集群的云提供商選項(xiàng)選為“None”。

image

在ubuntu虛擬機(jī)上復(fù)制并運(yùn)行docker命令來啟動(dòng)master節(jié)點(diǎn)。一個(gè)master節(jié)點(diǎn)至少要有etcd和control,如果你打算創(chuàng)建一個(gè)單節(jié)點(diǎn)集群,需要選擇所有3個(gè)角色并更改命令。

image

運(yùn)行docker命令之后,新節(jié)點(diǎn)將顯示在Rancher Server控制臺上,配置這一節(jié)點(diǎn)需要花費(fèi)一些時(shí)間,一旦配置完成,狀態(tài)將變?yōu)閍ctive。

創(chuàng)建worker節(jié)點(diǎn)

image

對于worker節(jié)點(diǎn),我們僅需要在節(jié)點(diǎn)選項(xiàng)選擇“Worker”角色,然后在3個(gè)worker節(jié)點(diǎn)的Ubuntu虛擬機(jī)上復(fù)制并運(yùn)行docker命令。

image

最后,在我的電腦上多節(jié)點(diǎn)集群已經(jīng)準(zhǔn)備就緒。

安裝kubectl工具來管理新的K8S集群

新集群的Kubernetes版本時(shí)v1.14.6,你可以在上面的截圖內(nèi)看到。為了更好地將kubectl工具版本與集群匹配,在master節(jié)點(diǎn)上運(yùn)行以下命令,以安裝特定版本:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.14.6/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

Kubectl工具需要一個(gè)kubeconfig文件與集群連接,新集群地kubeconfig文件可以在Rancher Server的控制臺中找到。

image

復(fù)制以上kubeconfig文件,并保存為~/.kube/config文件。隨后kubectl就能夠獲取集群信息。

image

有關(guān)kubectl的安裝和配置可以參考以下連接:

原文鏈接:

https://medium.com/@kwonghung.yip/setup-local-kubernetes-multi-node-cluster-with-rancher-server-fdb7a0669b5c

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容