如何統(tǒng)一管理谷歌GKE、AWS EKS和Oracle OKE
在Rancher出現(xiàn)之前,管理在不同云提供商中運(yùn)行的kubernetes集群從來都不是一件容易的事。Rancher是什么?它是一個(gè)開源的Kubernetes管理平臺,用戶可以在Rancher上創(chuàng)建對接不同云的Kubernetes集群,或直接向?qū)胍延械腒ubernetes集群進(jìn)行統(tǒng)一納管。
在這篇文章中,我將演示如何在Google云、AWS Cloud中啟動(dòng)Kubernetes集群以及如何從Oracle Cloud導(dǎo)入集群。所有這三個(gè)集群,最終都將在Rancher Dashboard上擁有直觀的視圖,并能進(jìn)行統(tǒng)一管理。本文將逐步展示如何從Rancher創(chuàng)建Kubernetes集群,以及如何通過Rancher Dashboard輕松完成監(jiān)控和部署。
除了Rancher Kubernetes管理平臺之外,Rancher Labs也發(fā)布過自己的RKE(Rancher Kubernetes Engine)供用戶選擇使用。RKE這是一個(gè)非常簡單、閃電般快速的Kubernetes安裝程序,可以在任何地方使用。因此,它消除了在裸機(jī)服務(wù)器或VM上安裝Kubernetes集群的痛苦,并且它還提供了很多自定義的靈活性。
RKE安裝
在這一章里我將演示如何在3個(gè)VM上安裝Rancher Kubernetes集群。首先你需要三臺機(jī)器來啟動(dòng)RKE集群。我使用的是3個(gè)EC2實(shí)例與ubuntu18.04,作為啟動(dòng)鏡像。所以現(xiàn)在我已經(jīng)有了一個(gè)單獨(dú)的VM,我將執(zhí)行這三個(gè)節(jié)點(diǎn)的所有安裝,其中一個(gè)將是主節(jié)點(diǎn),另外兩個(gè)將是工作節(jié)點(diǎn)。我已經(jīng)按照官方文檔(https://rancher.com/docs/rke/l ... tion/)進(jìn)行了安裝,為了讓整個(gè)工作更簡單,我稍微調(diào)整了一些步驟。
步驟1:下載RKE二進(jìn)制文件
- wget
- https://github.com/rancher/rke ... amd64
步驟2:mv rke_linux-amd64 rke
步驟3:導(dǎo)出PATH = / home / cloud_user / rke:$ PATH
步驟4:到目前為止,我已經(jīng)安裝了三臺安裝了docker的ubuntu EC2機(jī)器(一定要運(yùn)行“usermod -aG docker ubuntu”,這樣才能讓docker可以被ubuntu用戶訪問)、以及在創(chuàng)建這些實(shí)例時(shí)我使用的私鑰文件。你需要做的是在當(dāng)前的VM中創(chuàng)建文件,復(fù)制密鑰的內(nèi)容,更改密鑰權(quán)限并嘗試登錄到你的EC2實(shí)例之一。
然后運(yùn)行以下命令:
- rke config --name cluster.yml(如果你還沒有設(shè)置路徑,此處則可以使用./rke)。
一旦你按下Enter鍵,它將開始詢問你一些不同的參數(shù)值,因?yàn)樗鼤?huì)根據(jù)這些參數(shù)值來創(chuàng)建cluster.yml文件。這些參數(shù)基本上是你定義的節(jié)點(diǎn)特征,rke會(huì)自動(dòng)為你創(chuàng)建cluster.yml。你也可以按照Rancher的文檔自行創(chuàng)建。
以上是我傳遞的參數(shù),并基于它生成了cluster.yml文件。基本上它就是三個(gè)節(jié)點(diǎn)配置和我默認(rèn)選擇的其他一些與集群相關(guān)的配置。
以上是Node基于我們傳遞的參數(shù)在cluster.yml文件中的樣子。 現(xiàn)在你已準(zhǔn)備好了cluster.yml文件,就可以繼續(xù)下一步了。
步驟5:運(yùn)行“rke up”以啟動(dòng)集群(如果你在同一位置有cluster.yml文件的話),或者如果你擁有cluster.yml以外的文件,則可以運(yùn)行:rke up --config abc.yml
就這樣簡單!!! 然后你將可以看到集群啟動(dòng)了,并開始顯示各種INFO日志,以執(zhí)行各種工作來啟動(dòng)集群并將節(jié)點(diǎn)連接在一起。這也讓你可以看到幕后發(fā)生的事情,以便你可以感受到集群創(chuàng)建的所有步驟。如果不需要這些,你只需看看我們“成功建立Kubernetes集群”即可。
在此之后,rke還會(huì)創(chuàng)建一個(gè)kubeconfig文件,你可以使用該文件與集群進(jìn)行交互(在此之前需安裝kubectl),名稱為“kube_config_cluster_yml”。如果你使用的yml文件用了其他名稱,那么它將是'kube_config_test_yml',然后就可以使用這個(gè)config文件與集群進(jìn)行交互了。
Rancher安裝
現(xiàn)在我將向你展示如何安裝Rancher并從Rancher Dashboard創(chuàng)建/導(dǎo)入集群。 我將使用我用于RKE安裝的相同VM。 我將在端口80上運(yùn)行Rancher作為docker容器。
命令:
- docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
搞定!Rancher現(xiàn)在已經(jīng)運(yùn)行起來了!
下面登錄Rancher 并設(shè)置密碼,使用URL。
現(xiàn)在,Rancher已啟動(dòng)并正在運(yùn)行了,我們可以開始準(zhǔn)備創(chuàng)建和導(dǎo)入集群。下面我將向你展示如何使用Rancher創(chuàng)建AWS和Google云集群,以及如何從Oracle云和最近創(chuàng)建的RKE導(dǎo)入集群。
使用Rancher創(chuàng)建AWS集群
步驟1:單擊“添加集群”并選擇Amazon EKS。選擇完之后,你將需要提供集群名稱、訪問密鑰(Access Key)和secret Key。
步驟2:單擊“配置集群”,然后選擇Kubernetes版本和服務(wù)角色。
步驟3:單擊選擇VPC和子網(wǎng),以選擇節(jié)點(diǎn)的VPC和公共IP。
步驟4:選擇實(shí)例選項(xiàng),以指定節(jié)點(diǎn)的形狀和大小。
步驟5:創(chuàng)建集群
單擊“創(chuàng)建”后,配置AWS EKS集群就開始了,這一切將顯示在AWS儀表板和Rancher Dashboard中。
使用Rancher創(chuàng)建Google Kubernetes集群
步驟1:在Google云端控制臺中創(chuàng)建具有以下權(quán)限的服務(wù)帳戶。
步驟2:為該服務(wù)帳戶創(chuàng)建JSON密鑰并將其保存在你的計(jì)算機(jī)上,因?yàn)樵谕ㄟ^Rancher創(chuàng)建集群時(shí)將需要此密鑰。
步驟3:轉(zhuǎn)到Rancher Dashboard,單擊“添加集群”并選擇Google GKE。 填好集群的名稱,并粘貼您剛剛在步驟2中創(chuàng)建的服務(wù)帳戶JSON文件。
步驟4:單擊“配置節(jié)點(diǎn)”后,它將使用提供的JSON文件進(jìn)行身份驗(yàn)證,并顯示兩者不同的部分,你可以在其中選擇相應(yīng)的集群選項(xiàng)。 你可以選擇區(qū)域、Kubernetes版本、節(jié)點(diǎn)數(shù)/形狀/鏡像、啟用/禁用自動(dòng)修復(fù)、自動(dòng)縮放和自動(dòng)升級等功能,然后單擊“創(chuàng)建”。
就是這樣,只要你點(diǎn)擊“創(chuàng)建”,Google Kubernetes集群就創(chuàng)建好了。
使用Rancher導(dǎo)入RKE集群
在本節(jié)中,我將展示如何將RKE集群導(dǎo)入你剛剛在本文開頭創(chuàng)建的Rancher。
步驟1:單擊添加集群,選擇導(dǎo)入選項(xiàng)后,填入集群名稱并單擊創(chuàng)建。
步驟2:運(yùn)行下一個(gè)屏幕上提到的命令,以創(chuàng)建集群管理員角色以及Rancher導(dǎo)入需要的yaml。
將Oracle Kubernetes引擎導(dǎo)入Rancher Dashboard
先創(chuàng)建OKE(Oracle Kubernetes Engine),轉(zhuǎn)到Oracle OCI控制臺,從菜單中選擇開發(fā)者服務(wù),然后選擇集群。我將選擇快速創(chuàng)建選項(xiàng),因?yàn)樗浅:唵?,除了提供集群名稱和節(jié)點(diǎn)形狀和計(jì)數(shù)之外,無需再執(zhí)行任何其他操作。
Rancher Dashboard
下面讓我們看看Rancher Dashboard。
現(xiàn)在,你可以使用Rancher Dashboard進(jìn)行各種不同的操作。
啟用監(jiān)控
你可以直接使用Dashboard啟用prometheus和grafana監(jiān)控,并訪問所有集群的grafana儀表板。 下面我將展示如何為Google Kubernetes集群執(zhí)行操作,這些流程適用于其他所有各類集群。
步驟1:選擇要為其啟用監(jiān)控的集群。
步驟2:從工具菜單中選擇監(jiān)控。
步驟3:單擊“啟用”并設(shè)置限制。單擊保存。
單擊“保存”后,你的監(jiān)控功能已啟用。當(dāng)你單擊集群時(shí),您將可以看到grafana的logo。
單擊任意一個(gè)Grafana的logo,你會(huì)跳轉(zhuǎn)到Grafana的儀表板,可以在其中查看所有指標(biāo),并根據(jù)需要?jiǎng)?chuàng)建告警。
管理集群
你可以使用Rancher Dashboard輕松管理集群的所有已部署的pod、服務(wù)等。
在這里,您可以編輯yaml文件,重新部署它們并根據(jù)需要更改配置。
部署應(yīng)用程序
使用Rancher Dashboard將應(yīng)用程序部署到集群非常簡單。 只需打開集群的工作負(fù)載頁面,即可部署應(yīng)用程序。
部署
下面讓我們來部署一個(gè)示例的nginx應(yīng)用程序。 選擇部署時(shí),你可以使用各種選項(xiàng)來部署應(yīng)用程序。
部署應(yīng)用程序
你可以設(shè)置環(huán)境變量、執(zhí)行節(jié)點(diǎn)計(jì)劃、運(yùn)行健康檢查、創(chuàng)建卷以及定義擴(kuò)展策略。 你還可以通過單個(gè)的應(yīng)用程序部署界面做很多事情(特別酷炫!)。你也可以暴露端口(對于我的部署,我已將它暴露為外部負(fù)載均衡器)。
執(zhí)行kubectl命令
您可以在配置集群時(shí)生成的kubectl shell的幫助下,通過Rancher UI執(zhí)行kubectl命令。這里的一個(gè)問題是,當(dāng)您嘗試多次運(yùn)行kubectl shell時(shí),由于某些docker的問題會(huì)導(dǎo)致斷開連接。另一種可行方法是下載kubeconfig文件并在本地運(yùn)行kubectl命令。
你還可以創(chuàng)建卷,創(chuàng)建CI/CD的Pipeline等等。
結(jié) 語
在這篇文章中,我分享了:
- 如何安裝Rancher
- 如何使用Rancher安裝Google GKE
- RKE設(shè)置
- 使用Rancher創(chuàng)建AWS EKS
- 將Oracle Cloud OKE導(dǎo)入Rancher
- 從Rancher啟用對集群的監(jiān)控
- 使用Rancher UI部署示例應(yīng)用程序并將其作為負(fù)載均衡器公開
- 使用Rancher UI執(zhí)行Kubectl命令
Rancher的功能非常多,我當(dāng)然無法僅用一篇文章就分享完所有Rancher的功能、特性等等所有方面,更多用法大家可以繼續(xù)自行探索。