Karmada v1.15 版本發布

Karmada 是開放的多云多集群容器編排引擎,旨在幫助用戶在多云環境下部署和運維業務應用。憑借兼容 Kubernetes 原生 API 的能力,Karmada 可以平滑遷移單集群工作負載,并且仍可保持與 Kubernetes 周邊生態工具鏈協同。

Karmada v1.15 版本現已發布,本版本包含下列新增特性:

  • 多模板工作負載的資源精確感知
  • 集群級故障遷移功能增強
  • 結構化日志
  • Karmada 控制器和調度器性能顯著提升

多模板工作負載的資源精確感知

Karmada 利用資源解釋器獲取工作負載的副本數和資源請求,并據此計算工作負載所需資源總量,從而實現資源感知調度,聯邦配額管理等高階能力。這種機制在傳統的單模板工作負載中表現良好。然而,許多AI大數據應用的工作負載 ?CRD(如 FlinkDeployments,PyTorchJob 和 RayJob 等)包含多個 Pod 模板或組件,每個組件都有獨特的資源需求。由于資源解釋器僅能處理單個模板的資源請求,無法準確反映不同模板間的差異,導致多模板工作負載的資源計算不夠精確。

在這個版本中,Karmada 強化了對多模板工作負載的資源感知能力,通過擴展資源解釋器,Karmada 現在可以獲取同一工作負載不同模板的副本數和資源請求,確保數據的精確性。這一改進也為多模板工作負載的聯邦配額管理提供了更加可靠和精細的數據支持。

假設你部署了一個 FlinkDeployment,其資源相關配置如下:

spec:jobManager:replicas:?1resource:cpu:?1memory:?1024mtaskManager:replicas:?1resource:cpu:?2memory:?2048m

通過 ResourceBinding,你可以查看資源解釋器解析出的 FlinkDeployment 各個模板的副本數以及資源請求。

spec:components:- name:?jobmanagerreplicaRequirements:resourceRequest:cpu:?"1"memory:?"1.024"replicas:?1- name:?taskmanagerreplicaRequirements:resourceRequest:cpu:?"2"memory:?"2.048"replicas:?1

此時,FederatedResourceQuota 計算的 FlinkDeployment 占用的資源量為:

?status:overallUsed:cpu:?"3"memory:?3072m

注意:該特性目前處于 Alpha 階段,需要啟用 MultiplePodTemplatesScheduling 特性開關才能使用。

隨著多模板工作負載在云原生環境中的廣泛應用,Karmada 致力于對其提供更強有力的支持。在接下來的版本中,將基于此功能進一步加強對多模板工作負載的調度支持,提供更加細粒度的資源感知調度——敬請期待更多更新!

集群級故障遷移功能增強

在之前的版本中,Karmada 提供了基本的集群級故障遷移能力,能夠通過自定義的故障條件觸發集群級別的應用遷移。為了滿足有狀態應用在集群故障遷移過程中保留其運行狀態的需求,Karmada 在 v1.15 版本支持了集群故障遷移的應用狀態中繼機制。對于大數據處理應用(例如 Flink),利用此能力可以從故障前的 checkpoint 重新啟動,無縫恢復到重啟前的數據處理狀態,從而避免數據重復處理。

社區在?PropagationPolicy/ClusterPropagationPolicy?API 中的?.spec.failover.cluster?下引入了一個新的?StatePreservation?字段, 用于定義有狀態應用在故障遷移期間保留和恢復狀態數據的策略。結合此策略,當應用從一個故障集群遷移到另一個集群時,能夠從原始資源配置中提取關鍵數據。

狀態保留策略?StatePreservation?包含了一系列?StatePreservationRule?配置,通過?JSONPath?來指定需要保留的狀態數據片段,并利用關聯的?AliasLabelName?將數據傳遞到遷移后的集群。

以 Flink 應用為例,在 Flink 應用中,jobID?是一個唯一的標識符,用于區分和管理不同的 Flink 作業(jobs)。當集群發生故障時,Flink 應用可以利用?jobID?來恢復故障前作業的狀態,從故障點處繼續執行。具體的配置和步驟如下:

apiVersion:?policy.karmada.io/v1alpha1
kind:?PropagationPolicy
metadata:name:?foo
spec:#...failover:cluster:purgeMode: DirectlystatePreservation:rules:- aliasLabelName:?application.karmada.io/cluster-failover-jobidjsonPath:?"{ .jobStatus.jobID }"
  1. 遷移前,Karmada 控制器將按照用戶配置的路徑提取 job ID。

  2. 遷移時,Karmada 控制器將提取的 job ID 以 label 的形式注入到 Flink 應用配置中,比如?application.karmada.io/cluster-failover-jobid : <jobID>

  3. 運行在成員集群的 Kyverno 攔截 Flink 應用創建請求,并根據?jobID? 獲取該 job 的 checkpoint 數據存儲路徑,比如 ?/<shared-path>/<job-namespace>/<jobId>/checkpoints/xxx,然后配置?initialSavepointPath?指示從save point 啟動。

  4. Flink 應用根據?initialSavepointPath?下的 checkpoint 數據啟動,從而繼承遷移前保存的最終狀態。

該能力廣泛適用于能夠基于某個 save point 啟動的有狀態應用程序,這些應用均可參考上述流程實現集群級故障遷移的狀態中繼。

注意:該特性目前處于 Alpha 階段,需要啟用 StatefulFailoverInjection 特性開關才能使用。

功能約束:

  1. 應用必須限定在單個集群中運行;

  2. 遷移清理策略(PurgeMode)限定為?Directly,即需要確保故障應用在舊集群上刪除之后再在新集群中恢復應用,確保數據一致性。

結構化日志

日志是系統運行過程中記錄事件、狀態和行為的關鍵工具,廣泛用于故障排查、性能監控和安全審計。Karmada 組件提供豐富的運行日志,幫助用戶快速定位問題并回溯執行場景。在先前版本中,Karmada 僅支持非結構化的文本日志,難以被高效解析與查詢,限制了其在現代化觀測體系中的集成能力。

Karmada 在 1.15 版本引入了結構化日志支持,可通過?--logging-format=json?啟動參數配置 JSON 格式輸出。結構化日志示例如下:

{"ts":“日志時間戳”,"logger":"cluster_status_controller","level":?"info","msg":"Syncing cluster status","clusterName":"member1"
}

結構化日志的引入顯著提升了日志的可用性與可觀測性:

  • 高效集成:可無縫對接 Elastic、Loki、Splunk 等主流日志系統,無需依賴復雜的正則表達式或日志解析器。

  • 高效查詢:結構化字段支持快速檢索與分析,顯著提升故障排查效率。

  • 可觀察性增強:關鍵上下文信息(如集群名、日志級別)以結構化字段呈現,便于跨組件、跨時間關聯事件,實現精準問題定位。

  • 可維護性提升:結構化日志使開發者和運維人員在系統演進過程中更易于維護、解析和調整日志格式,保障日志體系的長期穩定與一致性。

Karmada 控制器和調度器性能顯著提升

在本次版本中,Karmada 性能優化團隊繼續致力于提升 Karmada 關鍵組件的性能,在控制器和調度器方面取得了顯著進展。

控制器方面,通過引入優先級隊列,控制器能夠在重啟或切主后優先響應用戶觸發的資源變更,從而顯著縮短服務重啟和故障切換過程中的停機時間。

測試環境包含 5,000 個 Deployment、2,500 個 Policy 以及 5,000 個 ResourceBinding。在控制器重啟且工作隊列中仍有大量待處理事件的情況下,更新 Deployment 和 Policy。測試結果顯示,控制器能夠立即響應并優先處理這些更新事件,驗證了該優化的有效性

注意:該特性目前處于 Alpha 階段,需要啟用 ControllerPriorityQueue 特性開關才能使用。

調度器方面,通過減少調度過程中的冗余計算,降低遠程調用請求次數,Karmada 調度器的調度效率得到了顯著提升。

測試記錄了在開啟精確調度組件 karmada-scheduler-estimator 情況下,調度 5,000 個 ResourceBinding 所用的時間,結果如下:

  • 調度器吞吐量 QPS 從約 15 提升至約 22,性能提升達 46%;

  • gRPC 請求次數從約 10,000 次減少至約 5,000 次,降幅達 50%。

這些測試證明,在 1.15 版本中,Karmada 控制器和調度器的性能得到了極大提升。未來,將繼續對控制器和調度器進行系統性的性能優化。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95540.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95540.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95540.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[GYCTF2020]Ezsqli

文章目錄測試過濾找注入點布爾盲注無列名盲注總結測試過濾 xor for distinct information handler binary floor having join pg_sleep bp測試出來禁用了這些。 找注入點 查詢回顯推斷1Nu1Labool(false)1’bool(false)1’#bool(false)不是單引號包裹1"#bool(false)沒有引…

Agno 多 Agent 協作框架 - 手把手從零開始教程

本教程將帶你從零開始&#xff0c;一步步構建一個完整的多 Agent 協作系統。每一步都有詳細的代碼示例和解釋&#xff0c;讓你真正理解 Agno 框架的工作原理。第一步&#xff1a;創建你的第一個 Agent 讓我們從最簡單的開始 - 創建一個能回答問題的 Agent。 1.1 創建基礎文件 首…

數據庫查詢優化

這篇文章適合剛剛入手項目的小伙伴&#xff0c;為大家如何提高數據庫查詢效率提供一些建議。1.添加索引1.1 索引是什么對于索引基礎薄弱的同學&#xff0c;我們可以從 “索引是什么” 簡單類比&#xff1a;索引就像書籍的目錄&#xff0c;能幫數據庫快速定位到需要的數據&#…

安徽大學概率論期末試卷及答案解析

本文還有配套的精品資源&#xff0c;點擊獲取 簡介&#xff1a;安徽大學的概率論課程圍繞隨機現象的規律性&#xff0c;覆蓋了多個核心概念&#xff0c;如隨機事件的概率、條件概率、獨立事件、概率分布、期望值、方差、大數定律和中心極限定理。本資源包含期末試卷及答案&a…

HarmonyOS應用開發之界面列表不刷新問題Bug排查記:從現象到解決完整記錄

Bug排查在軟件開發過程中扮演著至關重要的角色&#xff0c;本文采用日記形式記錄了Bug排查的全過程&#xff0c;通過這種方式可以更加真實、詳細地記錄問題&#xff0c;便于后續追溯和經驗沉淀。 Bug背景 在使用HarmonyOS的ArkUI框架開發一個卡片管理應用時&#xff0c;遇到了…

FastVLM-0.5B 模型解析

模型介紹 FastVLM&#xff08;Fast Vision-Language Model&#xff09;是蘋果團隊于2025年在CVPR會議上提出的高效視覺語言模型&#xff0c;專為移動設備&#xff08;如iPhone、iPad、Mac&#xff09;優化&#xff0c;核心創新在于通過全新設計的 FastViTHD混合視覺編碼器 解決…

集成學習 | MATLAB基于CNN-LSTM-Adaboost多輸入單輸出回歸預測

集成學習 | MATLAB基于CNN-LSTM-Adaboost多輸入單輸出回歸預測 一、主要功能 該代碼使用 CNN 提取特征,LSTM 捕捉時序依賴,并通過 AdaBoost 集成多個弱學習器(每個弱學習器是一個 CNN-LSTM 網絡),最終組合成一個強預測器,用于回歸預測任務。代碼完成了從數據預處理、模型…

關于Homebrew:Mac快速安裝Homebrew

關于macOS 安裝HomebrewHomebrewHomebrew介紹Homebrew 官網地址Homebrew 能安裝什么&#xff1f;Mac上安裝Homebrew主要步驟&#xff1a;打開終端&#xff0c;執行官網安裝腳本注意遇到問題①&#xff1a;腳本在克隆 Homebrew 核心倉庫時&#xff0c;??無法連接 GitHub??&a…

【前端】使用Vercel部署前端項目,api轉發到后端服務器

文章目錄Vercel是什么概要Vercel部署分為兩種方案&#xff1a;一、使用GitHub構建部署二、通過 Vercel CLI 上傳本地構建資源注意事項轉發API到后端小結Vercel是什么 Vercel是一款專為前端開發者打造的云部署平臺&#xff0c;它支持一鍵部署靜態網站、AI工具和現代Web應用。Ve…

滾珠導軌在工業制造領域如何實現高效運行?

在工業制造領域中滾珠導軌憑借其高精度、低摩擦、高剛性等特點&#xff0c;被廣泛應用于多種設備和場景&#xff0c;并在設備性能中起著關鍵作用&#xff0c;以下是具體應用&#xff1a;加工中心&#xff1a;滾珠導軌用于加工中心的工作臺和主軸箱等部件的移動&#xff0c;能保…

大基座模型與 Scaling Law:AI 時代的邏輯與困境

一、背景&#xff1a;為什么大模型一定要“做大”&#xff1f; 在人工智能的發展歷程中&#xff0c;有一個不容忽視的“鐵律”&#xff1a;更大的模型往往意味著更強的性能。從 GPT-2 到 GPT-4&#xff0c;從 BERT 到 PaLM&#xff0c;從 LLaMA 到 Claude&#xff0c;每一代的…

內網的應用系統間通信需要HTTPS嗎

內網是否需要 HTTPS&#xff1f; 雖然內網通常被視為“相對安全”的環境&#xff0c;但仍需根據具體情況決定是否使用 HTTPS&#xff0c;原因如下&#xff1a; 內部威脅風險 ● 內網可能面臨內部人員攻擊、橫向滲透&#xff08;如黑客突破邊界后在內網掃描&#xff09;、設備…

6.ImGui-顏色(色板)

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 本次游戲沒法給 內容參考于&#xff1a;微塵網絡安全 上一個內容&#xff1a;5.ImGui-按鈕 IMGui中表示顏色的的結構體 ImVec4和ImU32&#xff0c;如下圖紅框…

【C++】Vector完全指南:動態數組高效使用

0. 官方文檔 vector 1. vector介紹 Vector 簡單來說就是順序表&#xff0c;是一個可以動態增長的數組。 vector是表示可變大小數組的序列容器。 就像數組一樣&#xff0c;vector也采用的連續存儲空間來存儲元素。也就是意味著可以采用下標對vector的元素進行訪問&#xff0c…

關于無法導入父路徑的問題

問題重現 有下面的代碼&#xff1a; from ..utils import Config,set_DATA_PATH DATA_PATH set_DATA_PATH()報錯如下&#xff1a;from ..utils import Config,set_DATA_PATH ImportError: attempted relative import beyond top-level package解決方案 #獲取當前腳本所在目錄的…

C/C++包管理工具:Conan

Conan是一個專為C/C設計的開源、去中心化、跨平臺的包管理器&#xff0c;致力于簡化依賴管理和二進制分發流程。Conan基于Python進行開發&#xff0c;支持與主流的構建系統集成&#xff0c;提供了強大的跨平臺和交叉編譯能力。通過Conan&#xff0c;開發者可以高效的創建、共享…

核心高并發復雜接口重構方案

核心高并發復雜接口重構方案 一、重構目標與原則 核心目標 提升接口性能:降低響應時間,提高吞吐量,降低資源使用 增強可維護性:拆解復雜邏輯,模塊化設計,降低后續迭代成本 保障穩定性:通過架構優化和灰度策略,確保重構過程無服務中斷 提升擴展性:設計靈活的擴展點,…

C++容器內存布局與性能優化指南

C容器的內存布局和緩存友好性對程序性能有決定性影響。理解這些底層機制&#xff0c;能幫你寫出更高效的代碼。 一、容器內存布局概述 不同容器在內存中的組織方式差異顯著&#xff0c;這直接影響了它們的訪問效率和適用場景。容器類型內存布局特點元數據位置元素存儲位置std::…

Beautiful.ai:AI輔助PPT工具高效搞定排版,告別熬夜做匯報煩惱

你是不是每次做 PPT 都頭大&#xff1f;找模板、調排版、湊內容&#xff0c;熬大半夜出來的東西還沒眼看&#xff1f;尤其是遇到 “明天就要交匯報” 的緊急情況&#xff0c;打開 PPT 軟件半天&#xff0c;光標在空白頁上晃來晃去&#xff0c;連標題都想不出來 —— 這種抓瞎的…

阿里云攜手MiniMax構建云原生數倉最佳實踐:大模型時代的 Data + AI 數據處理平臺

MiniMax簡介MiniMax是全球領先的通用人工智能科技公司。自2022年初成立以來&#xff0c;MiniMax以“與所有人共創智能”為使命&#xff0c;致力于推動人工智能科技前沿發展&#xff0c;實現通用人工智能(AGI&#xff09;。MiniMax自主研發了一系列多模態通用大模型&#xff0c;…