1. 程式人生 > >如何統一管理谷歌GKE、AWS EKS和Oracle OKE

如何統一管理谷歌GKE、AWS EKS和Oracle OKE

在Rancher出現之前,管理在不同雲提供商中執行的kubernetes叢集從來都不是一件容易的事。Rancher是什麼?它是一個開源的Kubernetes管理平臺,使用者可以在Rancher上建立對接不同雲的Kubernetes叢集,或直接嚮導入已有的Kubernetes叢集進行統一納管。

在這篇文章中,我將演示如何在Google雲、AWS Cloud中啟動Kubernetes叢集以及如何從Oracle Cloud匯入叢集。所有這三個叢集,最終都將在Rancher Dashboard上擁有直觀的檢視,並能進行統一管理。本文將逐步展示如何從Rancher建立Kubernetes叢集,以及如何通過Rancher Dashboard輕鬆完成監控和部署。

除了Rancher Kubernetes管理平臺之外,Rancher Labs也釋出過自己的RKE(Rancher Kubernetes Engine)供使用者選擇使用。RKE這是一個非常簡單、閃電般快速的Kubernetes安裝程式,可以在任何地方使用。因此,它消除了在裸機伺服器或VM上安裝Kubernetes叢集的痛苦,並且它還提供了很多自定義的靈活性。

RKE安裝

在這一章裡我將演示如何在3個VM上安裝Rancher Kubernetes叢集。首先你需要三臺機器來啟動RKE叢集。我使用的是3個EC2例項與ubuntu18.04,作為啟動映象。所以現在我已經有了一個單獨的VM,我將執行這三個節點的所有安裝,其中一個將是主節點,另外兩個將是工作節點。我已經按照官方文件(

https://rancher.com/docs/rke/latest/en/installation/)進行了安裝,為了讓整個工作更簡單,我稍微調整了一些步驟。

步驟1:下載RKE二進位制檔案

wget

https://github.com/rancher/rke/releases/download/v0.1.18/rke_linux-amd64

步驟2:mv rke_linux-amd64 rke

步驟3:匯出PATH = / home / cloud_user / rke:$ PATH

步驟4:到目前為止,我已經安裝了三臺安裝了docker的ubuntu EC2機器(一定要執行“usermod -aG docker ubuntu”,這樣才能讓docker可以被ubuntu使用者訪問)、以及在建立這些例項時我使用的私鑰檔案。你需要做的是在當前的VM中建立檔案,複製金鑰的內容,更改金鑰許可權並嘗試登入到你的EC2例項之一。

然後執行以下命令:

rke config --name cluster.yml(如果你還沒有設定路徑,此處則可以使用./rke)。

一旦你按下Enter鍵,它將開始詢問你一些不同的引數值,因為它會根據這些引數值來建立cluster.yml檔案。這些引數基本上是你定義的節點特徵,rke會自動為你建立cluster.yml。你也可以按照Rancher的文件自行建立。

以上是我傳遞的引數,並基於它生成了cluster.yml檔案。基本上它就是三個節點配置和我預設選擇的其他一些與叢集相關的配置。

以上是Node基於我們傳遞的引數在cluster.yml檔案中的樣子。 現在你已準備好了cluster.yml檔案,就可以繼續下一步了。

步驟5:執行“rke up”以啟動叢集(如果你在同一位置有cluster.yml檔案的話),或者如果你擁有cluster.yml以外的檔案,則可以執行:rke up --config abc.yml

就這樣簡單!!! 然後你將可以看到叢集啟動了,並開始顯示各種INFO日誌,以執行各種工作來啟動叢集並將節點連線在一起。這也讓你可以看到幕後發生的事情,以便你可以感受到叢集建立的所有步驟。如果不需要這些,你只需看看我們“成功建立Kubernetes叢集”即可。

部分日誌

在此之後,rke還會建立一個kubeconfig檔案,你可以使用該檔案與叢集進行互動(在此之前需安裝kubectl),名稱為“kube_config_cluster_yml”。如果你使用的yml檔案用了其他名稱,那麼它將是'kube_config_test_yml',然後就可以使用這個config檔案與叢集進行互動了。

設定完成

Rancher安裝

現在我將向你展示如何安裝Rancher並從Rancher Dashboard建立/匯入叢集。 我將使用我用於RKE安裝的相同VM。 我將在埠80上執行Rancher作為docker容器。

命令:docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

搞定!Rancher現在已經執行起來了!

下面登入Rancher <ipaddress>並設定密碼,使用URL。

Rancher的第一屏介面

Rancher Dashboard

現在,Rancher已啟動並正在運行了,我們可以開始準備建立和匯入叢集。下面我將向你展示如何使用Rancher建立AWS和Google雲集群,以及如何從Oracle雲和最近建立的RKE匯入叢集。

使用Rancher建立AWS叢集

步驟1:單擊“新增叢集”並選擇Amazon EKS。選擇完之後,你將需要提供叢集名稱、訪問金鑰(Access Key)和secret Key。

步驟2:單擊“配置叢集”,然後選擇Kubernetes版本和服務角色。

叢集選項

步驟3:單擊選擇VPC和子網,以選擇節點的VPC和公共IP。

VPC

步驟4:選擇例項選項,以指定節點的形狀和大小。

節點

步驟5:建立叢集

單擊“建立”後,配置AWS EKS叢集就開始了,這一切將顯示在AWS儀表板和Rancher Dashboard中。

AWS叢集已建立

使用Rancher建立Google Kubernetes叢集

步驟1:在Google雲端控制檯中建立具有以下許可權的服務帳戶。

服務帳戶

步驟2:為該服務帳戶建立JSON金鑰並將其儲存在你的計算機上,因為在通過Rancher建立叢集時將需要此金鑰。

建立JSON金鑰

步驟3:轉到Rancher Dashboard,單擊“新增叢集”並選擇Google GKE。 填好叢集的名稱,並貼上您剛剛在步驟2中建立的服務帳戶JSON檔案。

新增叢集並提供JSON檔案

步驟4:單擊“配置節點”後,它將使用提供的JSON檔案進行身份驗證,並顯示兩者不同的部分,你可以在其中選擇相應的叢集選項。 你可以選擇區域、Kubernetes版本、節點數/形狀/映象、啟用/禁用自動修復、自動縮放和自動升級等功能,然後單擊“建立”。

就是這樣,只要你點選“建立”,Google Kubernetes叢集就建立好了。

GKE

使用Rancher匯入RKE叢集

在本節中,我將展示如何將RKE叢集匯入你剛剛在本文開頭建立的Rancher。

步驟1:單擊新增叢集,選擇匯入選項後,填入叢集名稱並單擊建立。

正在匯入叢集

步驟2:執行下一個螢幕上提到的命令,以建立叢集管理員角色以及Rancher匯入需要的yaml。

命令

建立角色

將yaml檔案應用於RKE叢集以完成rancher匯入

將Oracle Kubernetes引擎匯入Rancher Dashboard

先建立OKE(Oracle Kubernetes Engine),轉到Oracle OCI控制檯,從選單中選擇開發者服務,然後選擇叢集。我將選擇快速建立選項,因為它非常簡單,除了提供叢集名稱和節點形狀和計數之外,無需再執行任何其他操作。

OKE叢集建立

Cluster已建立成功

Rancher Dashboard

下面讓我們看看Rancher Dashboard。

各處叢集,一處管理

現在,你可以使用Rancher Dashboard進行各種不同的操作。

啟用監控

你可以直接使用Dashboard啟用prometheus和grafana監控,並訪問所有叢集的grafana儀表板。 下面我將展示如何為Google Kubernetes叢集執行操作,這些流程適用於其他所有各類叢集。

步驟1:選擇要為其啟用監控的叢集。

步驟2:從工具選單中選擇監控。

選擇監控

步驟3:單擊“啟用”並設定限制。單擊儲存。

配置

單擊“儲存”後,你的監控功能已啟用。當你單擊叢集時,您將可以看到grafana的logo。

單擊任意一個Grafana的logo,你會跳轉到Grafana的儀表板,可以在其中檢視所有指標,並根據需要建立告警。

GKE的Grafana 儀表板

OKE的Grafana 儀表板

RKE的Grafana儀表板

管理叢集

你可以使用Rancher Dashboard輕鬆管理叢集的所有已部署的pod、服務等。

GKE的pods

在這裡,您可以編輯yaml檔案,重新部署它們並根據需要更改配置。

部署應用程式

使用Rancher Dashboard將應用程式部署到叢集非常簡單。 只需開啟叢集的工作負載頁面,即可部署應用程式。

部署

下面讓我們來部署一個示例的nginx應用程式。 選擇部署時,你可以使用各種選項來部署應用程式。

部署應用程式

你可以設定環境變數、執行節點計劃、執行健康檢查、建立卷以及定義擴充套件策略。 你還可以通過單個的應用程式部署介面做很多事情(特別酷炫!)。你也可以暴露埠(對於我的部署,我已將它暴露為外部負載均衡器)。

已經部署成功的應用程式

執行kubectl命令

您可以在配置叢集時生成的kubectl shell的幫助下,通過Rancher UI執行kubectl命令。這裡的一個問題是,當您嘗試多次執行kubectl shell時,由於某些docker的問題會導致斷開連線。另一種可行方法是下載kubeconfig檔案並在本地執行kubectl命令。

你還可以建立卷,建立CI/CD的Pipeline等等。

結 語

在這篇文章中,我分享了:

  • 如何安裝Rancher

  • 如何使用Rancher安裝Google GKE

  • RKE設定

  • 使用Rancher建立AWS EKS

  • 將Oracle Cloud OKE匯入Rancher

  • 從Rancher啟用對叢集的監控

  • 使用Rancher UI部署示例應用程式並將其作為負載均衡器公開

  • 使用Rancher UI執行Kubectl命令

Rancher的功能非常多,我當然無法僅用一篇文章就分享完所有Rancher的功能、特性等等所有方面,更多用法大家可以