本文分享自來源:《華為雲DTSE》第五期開源專刊,作者:任洪彩 華為雲高階軟體工程師,Karmada社群Maintainer。
管理和協調跨多個雲平臺的容器化應用是當前企業面臨的複雜性挑戰之一,Karmada多雲容器編排技術使得使用者能夠像操作單一叢集一樣輕鬆管理多叢集,簡化了多雲環境的運維複雜度,加速分散式雲原生應用升級。
行業背景
隨著雲端計算技術的飛速發展,企業對於雲基礎設施的需求日益多樣化,多雲策略成為了眾多企業的首選。多雲環境不僅能夠提高業務的靈活性和可用性,還能有效降低對單一雲服務商的依賴風險。根據最新的調查報告顯示,超過87%的企業正在使用多個雲廠商的服務,然而,隨之而來的是管理和協調跨多個雲平臺的容器化應用的複雜性挑戰。
業界流行的容器編排工具Kubernetes(簡稱K8s),雖然在單一叢集內展現了強大的資源管理和自動化部署能力,但在面對多雲場景時,其跨叢集的資源排程、統一管理以及資料一致性等問題成為了亟待解決的痛點。
現階段,雲原生多雲多叢集業務的編排面臨著諸多挑戰:
-
叢集繁多的重複勞動:運維工程師需要應對繁瑣的叢集配置、不同雲廠商叢集間的管理差異以及碎片化的API訪問入口等問題。
-
業務過度分散的維護難題:應用在各叢集的差異化配置繁瑣;業務跨雲訪問以及叢集間的應用同步難以管理。
-
叢集的邊界限制:應用的可用性受限於叢集;資源排程、彈性伸縮受限於叢集。
-
廠商繫結:業務部署的黏性問題,缺少自動化故障遷移;缺少中立的開源多雲容器編排專案。
Karmada多雲容器編排引擎,簡化多雲環境管理複雜度
為了解決上述挑戰,華為於2021年正式推出了開源專案Karmada,旨在打造一個雲原生的多雲容器編排平臺。Karmada(Kubernetes Armada,艦隊之意)繼承並超越了社群Federation v1和v2(kubefed)的設計理念,它不是簡單地在不同叢集間複製資源,而是透過一套全新的API和控制面元件,實現了在保持Kubernetes原有資源定義API不變的前提下,無縫地在多雲環境中部署和管理分散式工作負載。
Karmada提供了一個全域性的控制皮膚,使得使用者能夠像操作單一叢集一樣管理多雲上的Kubernetes叢集,簡化了多雲環境的運維複雜度,引入了高階的跨叢集排程策略,根據資源需求、成本、合規性等因素,自動將工作負載最佳化部署到最適合的雲平臺或區域。透過分散式資料管理和同步機制,確保多雲間的資料和配置一致性,降低了資料管理的複雜度。
實踐案例:Karmada在工業智慧檢測領域的應用
工業智慧檢測領域亟需標準化智慧檢測提升效率
在液晶皮膚生產領域,由於多種因素,產品常出現不良品。為此,關鍵工藝節點後引入了自動光學檢測(AOI)裝置,透過光學原理檢測常見缺陷。然而,現有 AOI 裝置僅識別缺陷有無,需要人工分類和識別缺陷,這一過程耗時且影響生產效率。數之聯的客戶企業,某皮膚龍頭企業,引入自動缺陷分類系統(ADC)以提高判定準確性並減輕勞動強度,使用深度學習技術自動分類 AOI 輸出的缺陷圖片,並篩除誤判,從而提高生產效率。
客戶企業率先在一個工廠引入 ADC,後續在其他工廠推廣,節省人力資源,提高判定效率。儘管如此,由於工藝複雜和供應商差異,現場建設呈現出割裂和分散管理的趨勢,給資料共享和運維帶來困難。為解決這些問題,客戶企業啟動了工業智慧檢測平臺的建設,該平臺利用人工智慧技術,實現標準化智慧檢測並提高生產效率和良率。
工業智慧檢測平臺
工業智慧檢測平臺將 ADC 作為核心,擴充套件至模型訓練和檢測復判,實現“雲”(管理+訓練)+“邊”(推理)+“端”(業務)的一體化方案,旨在透過標準化平臺提高生產質量和資料價值。建設範圍包括資源共享中心、現地訓練和邊側推理等子平臺,將在若干工廠實施。
工業智慧檢測平臺架構圖
專案目標是實現現地 ADC 上線、資源共享和雲邊端標準化,以減輕運維負荷、提升標準。工業智慧檢測平臺旨在透過規範化和標準化客戶企業全集團的 ADC 系統,為後續 ADC 建設提供樣本和模板,降低成本和週期,提高生產和質檢效率以及產品良率。平臺包含系統管理員、資源配置員等使用者角色,並涉及 ADC 推理、模型訓練、資料共享等資訊流,以及雲端協同功能,確保 ADC 的自動缺陷分類生產過程,並提高模型和缺陷圖片的利用率。
結合Karmada多叢集管理構建解決方案
一、叢集管理:多地域叢集統一納管
不同地域的 K8s 叢集註冊至中心雲系統,中心雲系統對多個現地的叢集進行管理。
二、應用管理:全域性統一部署、監控
透過 Karmada提供的叢集統一訪問能力,使用者在中心雲實現視覺化大屏等需要聚合成員叢集的資料的功能。
1、叢集監控
針對線上的叢集,中心雲系統可對記憶體、CPU、磁碟、網路流入流出速率、GPU、日誌等指標進行監控資料展示,並可切換叢集進行資料檢視。
資源監控
中心雲可以看到和訓練雲相同的監控,透過 Karmada 聚合層 API 由叢集的 Java 程式對 PromQL 封裝後提供給前端頁面。
2、中心雲資料下發
使用者在中心雲上傳的資料,可自由選擇下發至指定現地,包括資料集、標註、運算元工程、運算元映象以及模型等。
資料集、運算元工程、模型,通常是檔案,在完成傳輸後,會儲存到本地或NAS等儲存中。標註,通常是結構化資料,在完成傳輸後,會儲存到 DB 中。運算元映象,一般匯出為 tar 包,在完成傳輸後,會推送到當前叢集的 harbor 中。 中心雲除了 Karmada 的控制面以外,也帶有自己的業務 K8s 叢集,也包括儲存,因此可以作為一箇中轉器。以上均透過 Karmada 的聚合層 API 來呼叫我們提供的檔案上傳到 svc,實現了叢集和叢集之間的呼叫。
3、跨現地訓練
針對某現地訓練資源不足的情況下,可透過申請其他現地資源的方式,進行跨現地訓練。該功能實現方式為將 A 現地訓練所需要的資料集、標註、運算元工程、運算元映象等資料傳送至 B 現地,透過 B 現地的資源進行訓練。再將訓練好的模型返回給 A 現地。
原理和中心雲資料下發類似,任務所需的資料會直接傳送到對應叢集,體現了成員叢集和成員叢集之間的呼叫關係。
4、視覺化大屏
根據中心雲註冊的現地,統計不同現地的各類指標資料進行大屏展示。在這類大屏中展示實時資料的時候,透過 Karmada 聚合層 API,我們可以方便地直接呼叫成員叢集的 svc,而無需讓所有的資料顯示都走大資料的離線分析、實時分析,提供更高的時效性。
總結展望
Karmada專案自2021年開源並加入雲原生計算基金會(CNCF)成為沙箱專案以來,已經取得了顯著的發展與認可。專案於2023年底正式晉升為CNCF的孵化級別專案。這一成就標誌著Karmada技術生態獲得全球業界的廣泛認可,進一步鞏固了其在分散式雲原生技術領域的領先地位。該專案憑藉其創新的多雲多叢集容器編排能力,已被全球範圍內超過30家知名企業所採納用於構建企業級雲原生平臺。
Karmada的出現,為多雲時代的企業提供了一個強大且靈活的容器編排解決方案,它不僅解決了多雲管理的痛點,還為企業在雲原生旅程中探索更廣闊的應用場景提供了堅實的技術支撐。隨著雲原生技術的不斷演進,Karmada有望成為連線和簡化多雲生態的關鍵力量,助力企業釋放雲的全部潛能,加速數字化轉型的程序。
點選關注,第一時間瞭解華為雲新鮮技術~