主頁 >  其他 > 揭秘Karmada百倍集群規模多云基礎設施體系

揭秘Karmada百倍集群規模多云基礎設施體系

2023-05-12 08:49:17 其他

摘要:本文結合Karmada社區對大規模場景的思考,揭示Karmada穩定支持100個大規模集群、管理超過50萬個節點和200萬個Pod背后的原理

本文分享自華為云社區《Karmada百倍集群規模多云基礎設施體系揭秘》,作者: 云容器大未來 ,

隨著云原生技術在越來越多的企業和組織中的大規模落地,如何高效、可靠地管理大規模資源池以應對不斷增長的業務挑戰成為了當下云原生技術的關鍵挑戰,

在過去的很長一段時間內,不同廠商嘗試通過擴展單集群的規模來擴展資源池,然而,Kubernetes社區很早就發布了大規模集群的最佳實踐,其中包括幾項關鍵資料:節點數不超過5k,Pod數不超過150k,單個節點的Pod數量不超過110 k等,這側面說明了支持超大規模的集群不是Kubernetes社區主要努力的方向,同時,以單集群的方式擴展資源池通常需要定制Kubernetes的原生組件,這在增加了架構復雜度的同時也帶來了不少弊端:

(1)集群運維復雜度急劇增加,

(2)與社區演進方向相左,后續的維護成本上升,升級路徑不清晰,

(3)單集群本質上屬于單個故障域,集群故障時將導致無法控制爆炸半徑,

而多集群技術能在不侵入修改Kubernetes單集群的基礎上橫向擴展資源池的規模,在擴展資源池的同時降低了企業的運維管理等成本,此外,多集群系統天然支持多故障域,符合多數業務場景,如多地資料中心、CDN就近提供服務等,

Karmada作為CNCF首個多云容器編排專案,提供了包括Kubernetes原生API支持、多層級高可用部署、多集群故障遷移、多集群應用自動伸縮、多集群服務發現等關鍵特性,致力于讓用戶輕松管理無限可伸縮的資源池,為企業提供從單集群到多云架構的平滑演進方案,

隨著以Karmada為代表的多集群架構在企業的逐步落地,大規模場景下多集群系統的性能問題往往是用戶的核心關注點之一,本文將圍繞以下幾個問題,結合Karmada社區對大規模場景的思考,揭示Karmada穩定支持100個大規模集群、管理超過50萬個節點和200萬個Pod背后的原理,

(1) 如何衡量一個多集群系統資源池的維度與閾值?

(2) 對多集群系統進行大規模環境的壓測時,我們需要觀測哪些指標?

(3) Karmada是如何支撐100個大規模K8s集群并納管海量應用的?

(4) 在Karmada的生產落地程序中,有哪些最佳實踐和引數優化手段可以參考?

多集群系統資源池的維度與閾值

當前,業界對于多云資源池的Scalability尚未達成統一標準,為此,Karmada社區結合企業用戶的實踐,率先對這一問題進行了深入探索,一個多集群系統資源池規模不單指集群數量,實際上它包含很多維度的測量標準,在不考慮其他維度的情況下只考慮集群數量是毫無意義的,在若干因素中,社區按照優先級將其描述為以下三個維度:

(1) 集群數量,集群數量是衡量一個多集群系統資源池規模和承載能力最直接且最重要的維度,

(2) 資源(API物件)數量,對于多集群系統的控制面來說,存盤并不是無限的,在控制面創建的資源物件的數量和總體大小受限于系統控制面的存盤,也是制約多集群系統資源池規模的重要維度,這里的資源物件不僅指下發到成員集群的資源模板,而且還包括集群的調度策略、多集群服務等資源,

(3) 集群規模,集群規模是衡量一個多集群系統資源池規模不可忽視的維度,一方面,集群數量相等的情況下,單個集群的規模越大,整個多集群系統的資源池越大,另一方面,多集群系統的上層能力依賴系統對集群的資源畫像,例如在多集群應用的調度程序中,集群資源是不可或缺的一個因素,綜上所述,單集群的規模與整個多集群系統息息相關,但單集群的規模同樣不是制約多集群系統的限制因素,用戶可以通過優化原生的Kubernetes組件的方式來提升單集群的集群規模,達到擴大整個多集群系統的資源池的目的,但這不是衡量多集群系統性能的關注點,在集群的標準配置中,Node與Pod毫無疑問是其中最重要的兩個資源,Node是計算、存盤等資源的最小載體,而Pod數量則代表著一個集群的應用承載能力,

大規模場景下多集群系統的性能指標

在多集群系統的大規模落地行程中,如何衡量多集群聯邦的服務質量是一個不可避免的問題,在參考了Kubernetes社區的SLI(Service Level Indicator)/SLO(Service Level Objectives)和多集群系統的落地應用后,Karmada社區定義了以下SLI/SLO來衡量大規模場景下多集群聯邦的服務質量,

API Call Latency

注:API呼叫時延仍然是衡量基于Kubernetes的多集群系統服務質量的關鍵指標,Karmada兼容Kubernetes原生API,用戶除了使用原生API創建K8s的資源模板外,也可以使用Karmada自有API來創建多集群策略和訪問跨集群的資源,

Resource Distribution Latency

Cluster Registration Latency

注:集群注冊時延是從集群注冊到控制面到集群在聯邦側可用的時延,它反映了控制面接入集群以及管理集群的生命周期的性能,但它在某種程度上取決于控制面如何收集成員集群的狀態,因此,我們不會對這個指標進行強制的限制,

Resource Usage

注:資源使用量是多集群系統中非常重要的指標,我們希望在納管海量的集群和資源的同時消耗盡量少的系統資源,但由于不同的多集群系統提供的上層服務不同,因此對于不同的系統,其對資源的要求也會不同,因此,我們不會對這個指標進行強制的限制,

Karmada百倍集群規模基礎設施揭秘

Karmada社區在結合對上述兩個問題的思考以及用戶在落地程序中的反饋后,測驗了Karmada同時管理100個5K節點和2w Pod的Kubernetes集群的場景,本文不詳細描述具體的測驗環境資訊與測驗程序,而是側重于對測驗結果進行分析

在整個測驗程序中,API呼叫時延均符合上述定義的SLI/SLO,

圖一:只讀API(cluster-scope)呼叫時延

圖二:只讀API(namespace-scope)呼叫時延

圖三:只讀API(resource-scope)呼叫時延

圖四:Mutating API呼叫時延

Karmada在百倍集群規模下,仍能做到快速的API回應,這取決于Karmada獨特的多云控制面架構,事實上,Karmada在架構設計之初就采用了關注點分離的設計理念,使用Kubernetes原生API來表達集群聯邦資源模板,使用可復用的策略API來表達多集群的管理策略,同時控制面的資源模板作為應用的模板,不會在控制面生成具體的Pod,不同集群的應用在控制面的映射(Work物件)通過命名空間來進行安全隔離,完整的API作業流如下圖所示,如此設計,不僅可以讓Karmada能夠輕松集成Kubernetes的生態, 同時也大大減少了控制面的資源數量和承載壓力,基于此,控制面的資源數量不取決于集群的數量,而是取決于多集群應用的數量,

此外,Karmada的架構極具簡潔性和擴展性,karmada-apiserver作為控制面的入口與kube-apiserver類似,即使是在百倍集群規模下,Karmada仍能保持快速API回應,

Karmada支持通過命令列快速接入集群,以及集群的全生命周期管理,Karmada會實時采集集群心跳和狀態,其中集群狀態包括集群版本、支持的API串列、集群健康狀態以及集群資源使用量等,其中,Karmada會基于集群資源使用量對成員集群進行建模,這樣調度器可以更好地為應用選擇資源足夠的目標集群,在這種情況下,集群注冊時延與集群的規模息息相關,下表展示了加入一個5,000節點的集群直至它可用所需的時延,你可以通過關閉集群資源建模來使集群注冊時延與集群的大小無關,在這種情況下,集群注冊時延這個指標將小于2s,

Cluster Registration Latency:

Karmada支持多模式的集群統一接入,在Push模式下,Karmada控制面直連成員集群的kube-apiserver,而在Pull模式下,Karmada將在成員集群中安裝agent組件,并委托任務給它,因此Push模式多用于公有云的K8s集群,需要暴露APIServer在公網中,而Pull模式多用于私有云的K8s集群,下表展示了Karmada在不同模式下下發一個應用到成員集群所需的時延,

Resource Distribution Latency:

結論:我們容易得出,不論是Push模式還是Pull模式,Karmada都能高效地將資源下發到成員集群中,

在Karmada演進的數個版本中,大規模場景下使用Karmada管理多云應用的資源消耗一直是用戶比較關注的問題,Karmada社區做了許多作業來減少Karmada管理大型集群的資源使用量,比如我們優化了Informer的快取,剔除了資源無關的節點、Pod元資料;減少了控制器內不必要的型別轉換等等,相較于1.2版本,當前Karmada在大規模集群場景下減少了85%的記憶體消耗和32%的CPU消耗,下圖展示了不同模式下Karmada控制面的資源消耗情況,

Push模式:

Pull模式:

總的來說,系統消耗的資源在一個可控制面的范圍,其中Pull模式在記憶體使用上有明顯的優勢,而在其他資源上相差的不大,

Karmada大規模環境下的最佳實踐

Karmada支持性能引數的可配置化,用戶可以通過調整組件的引數來調整同一時間段內并發處理Karmada內部物件的數量、系統的吞吐量等以優化性能,同時Karmada在不同模式下的性能瓶頸并不相同,以下著重對此進行分析,

在Push模式中,控制面的資源消耗主要集中在karmada-controller-manager(約70%),而Karmada控制面基座(etcd/karmada-apiserver)的壓力不大,

結合karmada-apiserver的qps以及karmada-etcd的請求時延我們可以看出karmada-apiserver的請求量保持在一個較低的水平,在Push模式中,絕大多數的請求來自karmada-controller-manager,因此我們可以通過調整karmada-controller-manager的--concurrent-work-syncs來調整同一時間段并發work的數量來提升應用下發的速度,也可以配置--kube-api-qps和--kube-api-burst這兩個引數來控制Karmada控制面的整體流控,

在Pull模式中,控制面的資源消耗主要集中在karmada-apiserver,而不是karmada-controller-manager,

結合karmada-apiserver的qps以及karmada-etcd的請求時延我們可以看出karmada-apiserver的請求量保持在一個較高的水平,在Pull模式中,每個成員集群的karmada-agent需要維持一條與karmada-apiserver通信的長連接,我們很容易得出:在下發應用至所有集群的程序中請求總量是karmada-agent中配置的N倍(N=#Num of clusters),因此,在大規模Pull模式集群的場景下,Pull模式在資源下發/狀態收集方面有更好的性能,但同時需要考慮控制面的抗壓能力以及各個karmada-agent和控制面的整體流控,

當前,Karmada提供了集群資源模型的能力來基于集群空閑資源做調度決策,在資源建模的程序中,它會收集所有集群的節點與Pod的資訊,這在大規模場景下會有一定的記憶體消耗,如果用戶不使用這個能力,用戶可以關閉集群資源建模來進一步減少資源消耗,

總結

根據上述測驗結果分析,Karmada可以穩定支持100個大規模集群,管理超過50萬個節點和200萬個Pod,在Karmada落地行程中,用戶可以根據使用場景選擇不同的部署模式,通過引數調優等手段來提升整個多集群系統的性能,

受限于測驗環境和測驗工具,上述測驗尚未測驗到Karmada多集群系統的上限,同時多集群系統的分析理論以及測驗方法仍處于方興未艾的階段,下一步我們將繼續優化多集群系統的測驗工具,系統性地整理測驗方法,以覆寫更大的規模和更多的典型場景,

 

點擊關注,第一時間了解華為云新鮮技術~

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552233.html

標籤:其他

上一篇:構建萬物互聯,華為云IoT+鴻蒙重燃物體感知

下一篇:返回列表

標籤雲
其他(158873) Python(38128) JavaScript(25413) Java(18033) C(15226) 區塊鏈(8265) C#(7972) AI(7469) 爪哇(7425) MySQL(7177) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5338) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4570) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2432) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1972) 功能(1967) Web開發(1951) HtmlCss(1935) python-3.x(1918) C++(1915) 弹簧靴(1913) xml(1889) PostgreSQL(1875) .NETCore(1860) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 揭秘Karmada百倍集群規模多云基礎設施體系

    摘要:本文結合Karmada社區對大規模場景的思考,揭示Karmada穩定支持100個大規模集群、管理超過50萬個節點和200萬個Pod背后的原理 本文分享自華為云社區《Karmada百倍集群規模多云基礎設施體系揭秘》,作者: 云容器大未來 。 隨著云原生技術在越來越多的企業和組織中的大規模落地,如 ......

    uj5u.com 2023-05-12 08:49:17 more
  • 構建萬物互聯,華為云IoT+鴻蒙重燃物體感知

    摘要:鴻蒙的出現,讓硬體、軟體行業面臨著變革與重構的洪流,但激流勇進中,也潛藏著巨大機遇。物聯網設備與鴻蒙結合成為必然趨勢,本文將解讀華為云IoT+鴻蒙如何強強聯合,為物聯網行業提供新的思路和方法。 本文分享自華為云社區《華為云IoT攜同鴻蒙打造萬物智聯新機遇》,作者:華為云IoT DTSE團隊。 ......

    uj5u.com 2023-05-12 08:49:08 more
  • 谷歌I/O大會重磅發布:Bard編碼能力優化后仍不支持中文,開發者選擇C

    谷歌I/O大會今天凌晨發布,打出系列AI組合拳。除了發布升級版語言模型PaLM2之外,Bard能力也要起飛。 憑借改進的數學、邏輯和推理技能,Bard 現在可以幫助生成、解釋和除錯 20 多種編程語言的代碼,開發者們需要輸入prompt,來得到完整的代碼片段。 Bard提供的代碼參考功能,在提供代碼 ......

    uj5u.com 2023-05-12 08:48:42 more
  • Hardhat 開發框架 - Solidity開發教程連載

    Decert.me 要連載教程了, 《Solidity 開發教程》 力求系統、深入的介紹 Solidity 開發, 同時這是一套互動式教程,你可以實時的修改教程里的合約代碼并運行。 本教程來自貢獻者 @Tiny熊,讓我們正式開始學習吧。 如果你已經是 Hardhat 的使用者,可以直接跳到文末,參與 ......

    uj5u.com 2023-05-12 08:48:26 more
  • Grafana系列-統一展示-6-Zabbix儀表板

    系列文章 Grafana 系列文章 📝Notes: 關于 Grafana系列-統一展示-6-Zabbix 資料源, 其實已經在之前的文章: 使用 Grafana 統一監控展示 - 對接 Zabbix 里詳細介紹過了, 感興趣的請移步閱讀. 知識儲備 一個圖表上的多個 Items 我們可以在 met ......

    uj5u.com 2023-05-12 08:48:00 more
  • 在Bamboo上怎么使用iOS的單元測驗

    本教程將使用北汽登錄模塊為例,一步一步和大家一起搭建單元測驗用例,并在Bamboo上跑起來,最終測驗結果和代碼覆寫率會Bamboo上匯總。 ......

    uj5u.com 2023-05-12 08:47:48 more
  • Django SQL注入漏洞分析(CVE-2022-28346)

    Django 在2022年發布的安全更新,修復了在 QuerySet 的 annotate(), aggregate(), extra() 等函式中存在的 SQL 注入漏洞。 ......

    uj5u.com 2023-05-12 08:47:06 more
  • IntelliJ IDEA 最新激活碼:2023、2022及以下版本通用(親測有效)

    IntelliJ IDEA 2023版正式發布了。如何破解和激活IDEA呢?本文提供簡單易懂的破解和激活指南,幫助你全面有效的解鎖IDEA工具,不在受限于 IDEA 30天試用期。本文適用于 IDEA 2023, 2022及以下版本。IDEA最新激活碼,IDEA2023激活碼,一步到位,永久激活,親... ......

    uj5u.com 2023-05-12 08:40:35 more
  • pxe基礎的批量化裝機

    PXE網路裝機 PXE 原理 開機自檢 》MBR引導 》grub2選單 》內核初始化 》init初始化 服務器的批量部署 1.規模化:同時裝配多臺服務器 2.自動化:安裝系統、配置各種服務 3.遠程實作:不需要光碟、U盤等安裝介質 4.對于無盤作業站,服務器端需要提供可運行的完整系統鏡像;對于遠程安 ......

    uj5u.com 2023-05-12 08:34:57 more
  • 谷歌I/O大會重磅發布:Bard編碼能力優化后仍不支持中文,開發者選擇C

    谷歌I/O大會今天凌晨發布,打出系列AI組合拳。除了發布升級版語言模型PaLM2之外,Bard能力也要起飛。 憑借改進的數學、邏輯和推理技能,Bard 現在可以幫助生成、解釋和除錯 20 多種編程語言的代碼,開發者們需要輸入prompt,來得到完整的代碼片段。 Bard提供的代碼參考功能,在提供代碼 ......

    uj5u.com 2023-05-12 08:34:30 more