近日,全球領先的容器管理軟件供應商Rancher Labs宣佈,其旗艦產品Rancher——開源的企業級Kubernetes管理平臺——最新版本Rancher 2.2 Preview 2全面發佈,這一版本包含了許多在K8S集羣操作的強大特性。
您可以通過訪問發佈頁面(https://rancher.com/products/rancher/2.2/)和發佈說明(https://github.com/rancher/rancher/releases/tag/v2.2.0-alpha6)來了解所發佈的新功能。
本文將介紹其中一個特性:多集羣應用(multi-cluster applications),下面將爲您介紹,該特性將如何顯著減少您的工作量,並提高多集羣操作的可靠性。
概 覽
假如您有用過k8s,並且有兩個及以上的集羣運維經驗,那麼您遇到下面的情況:
當跨多個可用區部署(AZs)時,應用需要具有更高的容錯性;
在具有數百個集羣的邊緣計算場景中,同一個應用需要在多個集羣上運行。
在高可靠性的情況下,運維操作人員通常通過將節點從多個可用區納入到一個集羣內來降低單個可用區不可用風險。但是這個方案的問題在於,雖然抵抗了可用區故障,但是防不住集羣本身故障,集羣故障的可能性高於可用區故障,而且一旦集羣出故障後,可能會影響集羣中在運行的程序。
另外一種方法是,每個可用區中運行單獨的集羣,病症每個集羣上運行應用程序的副本。相當於每個可用區都有一套k8s集羣,但是每個集羣手動維護應用程序成本高,又易錯。
邊緣計算場景跟多可用區集羣相同的問題:應用程序手動維護,既耗時,又容易出錯,即使運維團隊給力,創建了複雜的腳本來部署和升級,但是又多了一個故障點,而且這些腳本也需要升級和維護,並且要求負責的運維人員不僅要編寫流程(升級發版流程),還要在腳本失敗時能夠轉成人肉運維。
從Rancher 2.2 Preview 2 (https://github.com/rancher/rancher/releases/tag/v2.2.0-alpha6)開始,Rancher支持在任意數量的k8s集羣中同時部署和升級同一應用程序的副本。
同時也擴展了基於Helm軟件包管理器的應用商店(Application Catalogs),在此之前,應用商店僅適用於單個集羣,我們在全局級別增加了一個附加功能,權限允許的情況下,可以將應用程序部署到Rancher管理的任意集羣上。
有關Rancher 2.2 Preview2的功能的完整演示,請保持關注,我們將在3月推出全新一季的在線培訓,屆時將提供新功能的演示,並在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版本(https://rancher.com/docs/rancher/v2.x/en/installation/server-tags/#helm-chart-repositories),如果有任何反饋意見,請在Github上提交Issues 或者加入論壇(https://forums.rancher.com/)或Slack(https://slack.rancher.io/) 。點擊文末【閱讀原文】即可進入Github界面,提issue。