1. 程式人生 > >15分鐘!在Azure上部署Rancher管理Kubernetes

15分鐘!在Azure上部署Rancher管理Kubernetes

開發十年,就只剩下這套架構體系了! >>>   

作者簡介

作者:Steve Buchanan

Steve Buchanan,Avanade雲轉型與DevOps團隊主管。近20年的IT從業經驗,出版過多本雲和資料中心管理的技術書籍。從2012年起至今,Steve連續7年成為微軟MVP,並在2017年獲得過微軟“25 ITSM Experts to Watch in 2017”和“IT Unity Community Champ”。

Rancher是一個開源的Kubernetes多叢集操作和工作負載管理的解決方案。簡而言之,您可以使用Rancher來統一部署和管理公有云(如Azure、AWS、GCP等)上的Kubernetes叢集,它們可以是公有云託管的Kubernetes如GCE、EKS、AKS,也可以是使用者自己建立的叢集。Rancher還集成了許多第三方身份驗證解決方案,諸如Active Directory、Azure Active Directory、Github,還有Splunk、Elasticsearch或Syslog端點等日誌解決方案。

關於通過Terraform在膝上型電腦或AWS上執行Rancher,我找到了不少現成的的指令和設定指令碼可以供使用者直接使用,卻發現關於Azure + Rancher的相關內容比較少。

我自己嘗試後,成功地讓我的Rancher環境在Azure上運行了。但我想,如果有一些準備好了的指令碼或模板,可以讓大家更快速地在Azure上啟動Rancher,那就更不錯。我找到了一些其他人貢獻的ARM模板來驅動Rancher,但是他們部署的是舊版本的Rancher,並且在模板中不清楚如何更新,以部署最新版本的Rancher。於是我決定構建一些可用於在Azure上快速部署Rancher、並將一個Kubernetes主機新增到Rancher的ARM模板。在我構建的這個ARM模板中,它將始終從Docker Hub中拉取Rancher容器,因此它能夠保持始終部署了最新版本的Rancher。在這篇文章中,我將詳細說明如何讓你的Rancher在15分鐘內啟動並執行。

首先,您可以在我的Github上找到ARM模板:

https://github.com/Buchatech/DeployRanchertoAzure。

這個映象庫中包含了用於部署Rancher的ARM模板和用於Kubernetes的主機VM。注意:我提供的這些模板可以供大家學習使用,但我不建議將其用於生產。

在repo中,名為RancherNode.JSON的ARM模板#1將部署一個帶Docker的Ubuntu VM以及最新版的Rancher(https://hub.docker.com/r/rancher/rancher)。名為RancherHost.JSON的ARM模板#2將部署帶有Docker的Ubuntu VM,用作為Rancher中的Kubernetes主機。

節點部署

通過“模版部署”或其他部署方法,將RancherNode.JSON的ARM模板部署到Azure訂閱中。系統將提示您輸入下面這張螢幕截圖中顯示的資訊:

主機部署

通過“模板部署”或其他部署方法,將RancherHost.JSON ARM模板部署到Azure訂閱中。需要注意的是,這個操作應該將Rancher Host ARM模版部署到和Rancher Node ARM模板的同一個資源組中。系統將提示您輸入下面這張螢幕截圖中顯示的資訊:

部署Rancher Node和Rancher Host ARM模板後,就可以在新資源組中看到以下資源了:

接下來,在Web瀏覽器中,開啟Rancher門戶。URL是Rancher Node VM的DNS名稱。如果你不知道DNS名稱是什麼,可以單擊概述頁面上Azure門戶中的Rancher Node VM。以下是URL的示例:

https://ranchernode.centralus.cloudapp.azure.com

Rancher門戶將提示您設定密碼,就如下圖所示:

設定好密碼後,Rancher門戶將提示您輸入正確的Rancher Server URL。這將自動成為Rancher Node VM DNS名稱。然後單擊“儲存URL”。

儲存之後,你就會登入到Rancher門戶,然後看到叢集頁面。現在你可以向Rancher新增新的Kubernetes叢集了。在這篇文章中,我將展示如何將叢集新增到Rancher Host VM。完成所有這一切後,Rancher會成功地將Kubernetes部署到Rancher Host VM。你也可以新增一個託管的Kubernetes,例如AKS,但這篇文章中我們暫時不演示這部分內容了。

單擊“新增叢集”

在“從我自己的現有節點”下,單擊“自定義”,為叢集命名,然後單擊“下一步”。

接下來,檢查節點選項的所有可選框,因為所有角色都將在單個Kubernetes叢集上。複製頁面底部顯示的程式碼,單擊“完成”,並在Rancher主機上執行程式碼。

要在Rancher主機上執行程式碼,您需要SSH並從那裡執行它。請按照下列步驟操作:

  1. 在Azure門戶中,在資源組中點選Rancher Host VM。

  2. 在Overview頁面上,單擊Connect。

  3. 稍後會彈出一個“連線到虛擬機器”的螢幕,複製螢幕上的“ssh [email protected]”。

  4. 通過VS程式碼,開啟Azure雲shell的終端或類似終端的終端,然後輸入剛剛複製的“ssh [email protected]”。

執行程式碼將如下所示:

完成後,執行Docker PS,以檢視Rancher agent容器是否正在執行:

在叢集下的Rancher門戶中,可以看到Rancher主機正在配置中:

當Kubernetes部署完成後,狀態將發生變化:

完成配置後,Kubernetes叢集將處於“活躍”狀態了:

現在我們可以看到這個新的Kubernetes叢集的大量資訊了。我們甚至可以從此處啟動Kubectl並開始執行命令!你可以花點時間到處點選試試,看看有哪些是你使用Kubernetes時熟悉的東西。可以說Rancher是真正大幅簡化了Kubernetes的管理體驗,Cool!

如果要新增更多節點或再次需要配置程式碼,只需單擊我下圖框出的省略號按鈕,然後進行編輯即可:

在“編輯叢集”中,您可以更改叢集名稱、獲取和更改設定、以及複製程式碼以將更多VM新增到叢集中:

本文到此結束,歡迎在作者部落格中瞭解更多有關Azure、Kubernetes、Rancher的技術文章:

http://