溫馨提示×

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

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

使用 Rancher 管理 AWS EKS 集群

發(fā)布時(shí)間:2020-07-07 04:48:59 來源:網(wǎng)絡(luò) 閱讀:570 作者:RancherLabs 欄目:云計(jì)算
作者簡(jiǎn)介James Sun?AWS解決方案架構(gòu)師。James 擁有超過 15 年的信息技術(shù)行業(yè)從業(yè)經(jīng)驗(yàn)。加入 AWS 前,他曾在 MapR、惠普、NetApp、雅虎和 EMC 等公司擔(dān)任多個(gè)高級(jí)技術(shù)職位。他擁有斯坦福大學(xué)博士學(xué)位。?本文原發(fā)于亞馬遜AWS官方博客。

Rancher?是一個(gè)流行的開源企業(yè)級(jí)Kubernetes管理平臺(tái),許多組織使用它來管理混合部署的Kubernetes 集群。Rancher 支持 Amazon Elastic Container Service for Kubernetes (Amazon EKS) ,借助此功能,Rancher用戶可以直接通過Rancher平臺(tái)來對(duì)AWS EKS進(jìn)行直接納管。

Amazon EKS 與 Rancher 結(jié)合后,使用方便,可兼具您在 Rancher 中養(yǎng)成的使用習(xí)慣與期望從 AWS 獲得的功能、可靠性和性能。Amazon 的托管 Kubernetes 解決方案 EKS,可以讓您 在云中快速創(chuàng)建可擴(kuò)展的 Kubernetes 實(shí)例,而Rancher擁有簡(jiǎn)潔易用的UI和針對(duì)Kubernetes的更多拓展功能,強(qiáng)強(qiáng)組合將帶來企業(yè)Kubernetes使用的操作體驗(yàn)和性能的極大提升。

不論你是EKS和Rancher的新手用戶,還是對(duì)EKS或Rancher都有所了解、著重關(guān)注如何使用開源軟件管理EKS,本文都值得一讀。

本文將演示如何使用 Rancher 設(shè)置 EKS 集群,部署可公開訪問的應(yīng)用程序來測(cè)試集群,以及部署示例項(xiàng)目以使用其他開源軟件(例如?Grafana?和?InfluxDB)來跟蹤實(shí)時(shí)地理空間數(shù)據(jù)。


前期準(zhǔn)備


若您將跟隨本文進(jìn)行同步操作,前期您需要擁有:

  • 主機(jī)VM、筆記本電腦或服務(wù)器,具有公共 Internet IP 地址,且未屏蔽端口22、80 和 443。

  • Docker,已安裝在主機(jī)VM、筆記本電腦或服務(wù)器上。

  • 一個(gè)AWS賬戶,具有訪問 Amazon EKS 的足夠權(quán)限,可參閱此處的詳細(xì)說明:

  • https://docs.aws.amazon.com/eks/latest/userguide/EKS_IAM_user_policies.html


滿足上述先決條件后,我們可以著手開始第一步:安裝 Rancher。


啟動(dòng) Rancher Docker 容器


在 VM 主機(jī)上,發(fā)出以下命令,以啟動(dòng) Rancher 容器(Rancher 版本應(yīng)等于或高于 2.0):

docker run -d --restart=unless-stopped --name rancher --hostname rancher -p 80:80 -p 443:443 rancher/rancher:latest

以上命令應(yīng)創(chuàng)建一個(gè) Rancher 容器版本 2.16 或更高版本

?(https://hub.docker.com/r/rancher/rancher)。

現(xiàn)在將瀏覽器指向主機(jī)的公共 IP;您應(yīng)該看到一個(gè)Rancher 歡迎頁(yè)面。請(qǐng)注意,由于 https 采用自簽名證書,您可能會(huì)收到 cert-authority-invalid 警告。此時(shí)請(qǐng)忽略該警告并繼續(xù)。如果您想完全消除此警告,可以在繼續(xù)操作之前,按照下述鏈接說明獲得一個(gè)有效證書:

https://aws.amazon.com/premiumsupport/knowledge-center/acm-certificate-error-https/

使用 Rancher 管理 AWS EKS 集群


在以下窗口中,鍵入主機(jī)的公共 IP,以便 EKS 可以通知 Rancher 安裝進(jìn)度:

使用 Rancher 管理 AWS EKS 集群



創(chuàng)建 EKS 集群


您首先需要為您的帳戶創(chuàng)建密鑰憑證。通過轉(zhuǎn)到?IAM > 用戶 >(您的用戶名)> 安全憑證來執(zhí)行此操作。

然后單擊創(chuàng)建訪問密鑰;應(yīng)出現(xiàn)一個(gè)像這樣的彈出窗口:

使用 Rancher 管理 AWS EKS 集群


記錄訪問密鑰 ID 和秘密訪問密鑰;這些是您在 Rancher 中創(chuàng)建 EKS 集群時(shí)所需要的。

接下來,進(jìn)入 Rancher 實(shí)例,單擊添加集群按鈕,然后選擇?Amazon EKS?選項(xiàng)?,F(xiàn)在給集群命名,例如“rancherEKSDemo”,然后輸入您在上一步中記錄的訪問密鑰 ID 和秘密訪問密鑰。

在“區(qū)域”下拉菜單中,只有兩個(gè)區(qū)域可供選擇:us-east-1?和?us-west-2。(注意,EKS 本身在全球許多地區(qū)都可用,請(qǐng)參閱此鏈接了解詳細(xì)信息:https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)選擇要部署 EKS 集群的區(qū)域,將所有項(xiàng)目設(shè)置為默認(rèn)值,然后單擊下一步:選擇服務(wù)角色。Rancher 將驗(yàn)證您提交的密鑰 ID 和密鑰是否已獲得授權(quán)。

在下一個(gè)屏幕上,檢查 Rancher 生成的“標(biāo)準(zhǔn)”服務(wù)角色,然后單擊下一步:選擇 VPC 和子網(wǎng)。?系統(tǒng)將提示您為工作節(jié)點(diǎn)、VPC 和子網(wǎng)選擇 IP。只需選擇默認(rèn)值,然后單擊下一步:選擇實(shí)例選項(xiàng)。出于演示目的,選擇默認(rèn)實(shí)例類型“m4.large”,并將最小和最大 ASG(自動(dòng)縮放組)值保留為默認(rèn)值。驗(yàn)證完成后,單擊創(chuàng)建按鈕。

使用 Rancher 管理 AWS EKS 集群


創(chuàng)建 EKS 集群需要 10 到 15 分鐘;在此期間,您將在控制臺(tái)上看到集群狀態(tài)為“預(yù)置”。

Rancher 使用 AWS 后端上的 Cloudformation 模板啟動(dòng)安裝。您可以通過轉(zhuǎn)到 Cloudformation 控制臺(tái)來監(jiān)控這些詳細(xì)事件,如下面的屏幕截圖所示:

使用 Rancher 管理 AWS EKS 集群


您還可以訪問 EKS 控制臺(tái),并驗(yàn)證是否正在創(chuàng)建集群,如下列屏幕截圖所示:

使用 Rancher 管理 AWS EKS 集群


集群完成預(yù)置后,您應(yīng)看到 Rancher 控制臺(tái)中的狀態(tài)變?yōu)椤盎顒?dòng)”:

使用 Rancher 管理 AWS EKS 集群



通過部署 nginx Pod 來測(cè)試您的 EKS 集群


現(xiàn)在,您可以在集群上部署 Pod/容器了。若要開始體驗(yàn),請(qǐng)嘗試部署 nginx pod。單擊位于左上角的下拉菜單,然后選擇“默認(rèn)”項(xiàng)目。

使用 Rancher 管理 AWS EKS 集群


接下來,您將看到工作負(fù)載屏幕,單擊位于屏幕右上角的部署按鈕:

使用 Rancher 管理 AWS EKS 集群


現(xiàn)在給您的工作負(fù)載命名并指定“nginx”Docker 映像。單擊添加端口,發(fā)布容器端口“80”并指定偵聽端口“80”,然后指定一個(gè)第 4 層負(fù)載均衡器。這將允許您通過公共互聯(lián)網(wǎng)訪問您的 nginx 實(shí)例。

使用 Rancher 管理 AWS EKS 集群


單擊啟動(dòng),等待工作負(fù)載和負(fù)載均衡器完成預(yù)置,方法是檢查工作負(fù)載和負(fù)載均衡選項(xiàng)卡的狀態(tài),直至其顯示“活動(dòng)”。

使用 Rancher 管理 AWS EKS 集群


使用 Rancher 管理 AWS EKS 集群


負(fù)載均衡器完成預(yù)置后,工作負(fù)載下方將顯示一個(gè)可單擊的鏈接。請(qǐng)注意,AWS 將為此 EKS 集群創(chuàng)建 DNS 條目,可能需要幾分鐘才能完成發(fā)布。如果在單擊鏈接后出現(xiàn) 404 錯(cuò)誤,請(qǐng)?jiān)俚葞追昼娨愿翬lastic Load Balancer DNS 記錄,然后重試。

單擊鏈接“80/tcp”應(yīng)轉(zhuǎn)到默認(rèn)的 nginx 頁(yè)面:

使用 Rancher 管理 AWS EKS 集群


使用 Rancher 管理 AWS EKS 集群



擴(kuò)展您的 nginx 部署


您可以非常輕松地?cái)U(kuò)展容器數(shù)量以適應(yīng)工作負(fù)載高峰。只需在默認(rèn)項(xiàng)目中選擇工作負(fù)載,然后單擊?+/-?標(biāo)記,即可擴(kuò)展和縮減部署以動(dòng)態(tài)調(diào)整工作負(fù)載:

使用 Rancher 管理 AWS EKS 集群



部署示例項(xiàng)目


下面,讓我們通過部署 Rancher 項(xiàng)目來實(shí)時(shí)跟蹤紐約市Citi Bike 的乘客量,讓這個(gè)演示更有趣。您將預(yù)置三個(gè) Pod:

  1. 數(shù)據(jù)提取 Pod:此 Pod 包含一個(gè)腳本,用于定期查詢Citi Bike 發(fā)布的 json 格式的實(shí)時(shí)數(shù)據(jù),并通過 API 將其保存到 InfluxDB 數(shù)據(jù)庫(kù)。

  2. 使用 InfluxDB 的時(shí)間序列數(shù)據(jù)庫(kù) Pod:此 Pod 已安裝InfluxDB,用于處理來自 Citi Bike 站點(diǎn)的實(shí)時(shí)數(shù)據(jù)。InfluxDB 是一個(gè)流行的開源數(shù)據(jù)庫(kù),針對(duì)查詢和搜索時(shí)間序列進(jìn)行了優(yōu)化。此外,此 Pod 還具有一個(gè)本地安裝點(diǎn),其中 AWS EBS gp2 存儲(chǔ)類用于提供存檔歷史數(shù)據(jù)所需的持久卷。

  3. Grafana pod:此 Pod 使用 Grafana 顯示收集的數(shù)據(jù)。


下一步是為項(xiàng)目創(chuàng)建 Kubernetes 命名空間。從位于左上角的下拉菜單中選擇默認(rèn)命名空間,然后單擊命名空間。單擊添加命名空間并鍵入“ns-citibike”,然后單擊創(chuàng)建。

使用 Rancher 管理 AWS EKS 集群


通過選擇左上角的下拉菜單返回集群控制臺(tái),屏幕截圖如下。然后選擇啟動(dòng)?kubectl。

使用 Rancher 管理 AWS EKS 集群


在 shell 窗口中,鍵入“kubectl get nodes -o wide”以查看工作節(jié)點(diǎn)狀態(tài);它們應(yīng)全部“準(zhǔn)備就緒”。

使用 Rancher 管理 AWS EKS 集群


現(xiàn)在發(fā)出以下命令來啟動(dòng)項(xiàng)目:

curl 'https://raw.githubusercontent.com/aws-samples/managing-eks-clusters-with-rancher/master/run' | bash

隨意下載腳本以查看所涉及的步驟。我已在腳本中添加了注釋供您查看。

等待幾分鐘,讓腳本完成執(zhí)行。

使用 Rancher 管理 AWS EKS 集群


在默認(rèn)項(xiàng)目中,您應(yīng)該看到已預(yù)置了三個(gè) Pod。再等待幾分鐘,以便更新負(fù)載均衡器的 DNS 記錄,然后再單擊?80/tcp?轉(zhuǎn)到 Grafana:

使用 Rancher 管理 AWS EKS 集群


在 Grafana 登錄頁(yè)面上,輸入“admin”作為用戶名并輸入“admin”作為密碼,然后登錄。

現(xiàn)在,您可以配置控制面板以顯示數(shù)據(jù)。


配置數(shù)據(jù)源


選擇左窗格中的齒輪圖標(biāo),單擊數(shù)據(jù)源,?然后單擊?+ 添加位于窗口右側(cè)的數(shù)據(jù)源:

使用 Rancher 管理 AWS EKS 集群


填寫數(shù)據(jù)源的名稱(例如 citibike),選擇 InfluxDB 作為類型,填寫“coordinates”作為數(shù)據(jù)庫(kù)名稱:

使用 Rancher 管理 AWS EKS 集群


然后,在 URL 字段中,找到 InfluxDB pod 的私有 IP 地址,并填寫?http://<ip?of?influxdb?pod>:8086。

您可以通過轉(zhuǎn)到 Rancher 中的默認(rèn)命名空間頁(yè)面找到Influxdb 的私有 IP 地址,然后單擊 deploy-Influxdb pod:

使用 Rancher 管理 AWS EKS 集群


使用 Rancher 管理 AWS EKS 集群


單擊保存并測(cè)試以添加數(shù)據(jù)源。


導(dǎo)入控制面板模板


下載此控制面板模板并將其保存到桌面:

https://raw.githubusercontent.com/aws-samples/managing-eks-clusters-with-rancher/master/CitiBike.json

在 Grafana 中,單擊左窗格中的?+?,然后選擇導(dǎo)入。?單擊位于窗口右側(cè)的上傳?json?文件,然后選擇剛下載到桌面的模板:

使用 Rancher 管理 AWS EKS 集群


現(xiàn)在,您可以開始跟蹤整個(gè)紐約市每個(gè) Citi Bike 站點(diǎn)的實(shí)時(shí)狀態(tài)。您可以選擇自行車站點(diǎn) ID 并查看其歷史需求趨勢(shì),如折線圖所示。您還可以指定一個(gè)時(shí)間窗口來跟蹤某一站點(diǎn)的長(zhǎng)期需求趨勢(shì)。所有站點(diǎn)目前的自行車容量也顯示在彩色編碼的地圖上;綠色表示有超過 30 輛自行車可用,而紅色表示自行車數(shù)量不足:

使用 Rancher 管理 AWS EKS 集群


城市規(guī)劃者可以利用這些信息來增加/縮小自行車站點(diǎn)的容量,以便更好地服務(wù)哪些依靠自行車滿足日常交通需求的紐約居民。


與 AWS EBS 集成以滿足更大的存儲(chǔ)容量需求


在啟動(dòng)上面的項(xiàng)目命令時(shí),您同時(shí)還使用 EBS for InfluxDB和提取 Pod 中的 gp2 存儲(chǔ)類型創(chuàng)建了兩個(gè)持久卷(每個(gè) 50 GB),因?yàn)槿萜鞯谋镜卮鎯?chǔ)空間不足以容納持續(xù)流入的數(shù)據(jù)。若要查看這些持久卷及其持久卷聲明,請(qǐng)前往默認(rèn)命名空間并選擇頂部的卷選項(xiàng)卡。

使用 Rancher 管理 AWS EKS 集群


現(xiàn)在,通過單擊工作負(fù)載選項(xiàng)卡,查看提取 Pod,然后單擊位于窗口最右側(cè)的“deploy-citibike”容器的下拉菜單,并選擇執(zhí)行 Shell。

使用 Rancher 管理 AWS EKS 集群


現(xiàn)在您處于容器的 shell 提示下。輸入“mount /?grep citibike”,您會(huì)看到一個(gè)卷設(shè)備 /dev/xvdxx 安裝在帶有 ext4 文件系統(tǒng)的 /citibike 上。

制作一個(gè)?“ls /citibike”?– 您將看到所有原始 json 文件均存檔在那里。

使用 Rancher 管理 AWS EKS 集群



結(jié)?語(yǔ)


在這篇文章中,我們演示了如何使用 Rancher 來創(chuàng)建和管理 EKS 集群,作為實(shí)操示例,我們還成功部署了一個(gè)示例項(xiàng)目,使用流行的開源工具(容器化的 Grafana 和 InfluxDB),成功跟蹤了紐約市 Citi Bike 的實(shí)時(shí)地理空間數(shù)據(jù)。


原文鏈接:https://aws.amazon.com/blogs/opensource/managing-eks-clusters-rancher/?from=groupmessage&isappinstalled=0


向AI問一下細(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