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

在Rancher出現以前,管理在不一樣雲提供商中運行的kubernetes集羣歷來都不是一件容易的事。Rancher是什麼?它是一個開源的Kubernetes管理平臺,用戶能夠在Rancher上建立對接不一樣雲的Kubernetes集羣,或直接嚮導入已有的Kubernetes集羣進行統一納管。linux

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

除了Rancher Kubernetes管理平臺以外,Rancher Labs也發佈過本身的RKE(Rancher Kubernetes Engine)供用戶選擇使用。RKE這是一個很是簡單、閃電般快速的Kubernetes安裝程序,能夠在任何地方使用。所以,它消除了在裸機服務器或VM上安裝Kubernetes集羣的痛苦,而且它還提供了不少自定義的靈活性。git

RKE安裝github

在這一章裏我將演示如何在3個VM上安裝Rancher Kubernetes集羣。首先你須要三臺機器來啓動RKE集羣。我使用的是3個EC2實例與ubuntu18.04,做爲啓動鏡像。因此如今我已經有了一個單獨的VM,我將執行這三個節點的全部安裝,其中一個將是主節點,另外兩個將是工做節點。我已經按照官方文檔(https://rancher.com/docs/rke/...)進行了安裝,爲了讓整個工做更簡單,我稍微調整了一些步驟。docker

步驟1:下載RKE二進制文件shell

wgetubuntu

https://github.com/rancher/rk...服務器

步驟2:mv rke_linux-amd64 rke負載均衡

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

步驟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的功能、特性等等全部方面,更多用法你們能夠繼續自行探索。

相關文章
相關標籤/搜索