引言
近日(春節前後),Rancher labs宣佈,其旗下的開源企業級Kubernetes管理平臺Rancher,釋出了Rancher 2.2 Preview 2(預覽版2),它包含了許多在k8s 叢集操作的強大特性
本文將介紹其中一個特性:多叢集應用(multi-cluster applications),下面將為您介紹,該特性將如何顯著減少您的工作量,並提高多叢集操作的可靠性。
概覽
假如您有用過k8s,並且有兩個及以上的叢集運維經驗,那麼您遇到下面的情況
- 當跨多個可用區部署(AZs)時,應用需要具有更高的容錯性
- 在具有數百個叢集的邊緣計算場景中,同一個應用需要在多個叢集上執行。
在高可靠性的情況下,運維操作人員通常通過將節點從多個可用區納入到一個叢集內來降低單個可用區不可用風險。但是這個方案的問題在於,雖然抵抗了可用區故障,但是防不住叢集本身故障,叢集故障的可能性高於可用區故障,而且一旦叢集出故障後,可能會影響叢集中在執行的程式。
另外一種方法是,每個可用區中執行單獨的叢集,病症每個叢集上執行應用程式的副本。相當於每個可用區都有一套k8s叢集,但是每個叢集手動維護應用程式成本高,又易錯。
邊緣計算場景跟多可用區叢集相同的問題:應用程式手動維護,既耗時,又容易出錯,即使運維團隊給力,建立了複雜的指令碼來部署和升級,但是又多了一個故障點,而且這些指令碼也需要升級和維護,並且要求負責的運維人員不僅要編寫流程(升級發版流程),還要在指令碼失敗時能夠轉成人肉運維。
從Rancher 2.2 Preview 2 開始,Rancher支援在任意數量的k8s叢集中同時部署和升級同一應用程式的副本。
同時也擴充套件了基於Helm軟體包管理器的應用商店(Application Catalogs),在此之前,應用商店僅適用於單個叢集,我們在全域性級別增加了一個附加功能,許可權允許的情況下,可以將應用程式部署到Rancher管理的任意叢集上。
有關Rancher 2.2 Preview2的功能的完整演示,請加入 Rancher2月份的線上MeetUp ,屆時將提供新功能的演示,並在Q&A環節進行答疑。
下面將演示,在Rancher中如何便捷的管理多叢集應用。
功能快速入門
- 登陸Rancher後,將看到納管的所有叢集的列表,同時在選單欄新增了一個
多叢集應用(Multi-Cluster Apps)
的按鈕
- 單擊
多叢集應用
按鈕後,將看到兩個按鈕,管理Catalogs
和啟動
。管理Catalogs
將跳到應用商店(Catalogs)
的管理頁,您開源在其中啟用主要Helm repo或者新增其他第三方Helm repo。 - 單擊
啟動
按鈕以啟動新應用程式。
- 從顯示的可以部署的應用中,選擇Grafana(用於演示)。
- 按照要求配置詳細資訊,使用表單或者直接用提供YAML進行配置,注意,在此處的設定將應用到部署此應用程式的叢集中。
- 在
配置選項
下,在Target(目標)
下拉框中選擇目標叢集的指定專案。
- 選擇升級策略。此處為了演示,我們將選擇
滾動更新
並提供每批1個,間隔20秒。此設定可以確保以後升級應用時,一次只更新一個叢集,並且每個叢集升級操作的間隔為20秒。
- 如果要調整叢集間的差異,可以在
Answer Overrides
部分進行設定。
- 一切準備妥當,點選底部
啟動
,然後將跳到結果頁,顯示剛剛已安裝的多叢集應用(此處是演示用的Grafana)。每個應用將顯示當前狀態和目標叢集以及專案列表。
- 當應用程式可以升級時,應用狀態將顯示
Upgrade Available
- 要啟動升級,請單擊應用上的選單按鈕(三個點的選單),然後選擇升級
- 驗證是否已選擇
滾動更新
選項 - 更改一些設定,然後點選底部的
升級
按鈕
開啟目標叢集的 工作負載
選項卡,將看到其中一個狀態更改為 更新
,此叢集中的應用將被更新,然後Rancher將暫停20s(剛剛設定的間隔時間),然後繼續更新下一個叢集的應用。
總結
多叢集應用程式將減少運維團隊的工作量,並使跨叢集快速可靠的部署和升級應用成為可能。
要在實驗室或者開發環境中測試這些功能,請安裝最新的Alpha版本,如果有任何反饋意見,請在Github上提交Issues 或者加入論壇 或Slack 。
參考資料
- rancher 部落格原文–Introducing Multi-Cluster Applications in Rancher 2.2 Preview 2
- Rancher中國微信公眾號–革命性新特性 | 單一應用跨多Kubernetes叢集的部署與管理
招聘小廣告
山東濟南的小夥伴歡迎投簡歷啊 加入我們 , 一起搞事情。
長期招聘,Java程式設計師,大資料工程師,運維工程師,前端工程師。