Karmada 千級容器集群:工商銀行業務容災管理設計利器

文章目錄

  • 前言
  • 一、工行業務背景
    • 1.1、工行云計算架構組成
    • 1.2、工行云平臺技術棧
    • 1.3、工行金融云成效
      • 1.3.1、入云規模同業最大
      • 1.3.2、業務如云場景廣
    • 1.4、容災及高可用保障
    • 1.5、PaaS 層多集群現狀
      • 1.5.1、集群種類多
      • 1.5.2、k8s 集群 node 數量限制
      • 1.5.3、業務擴展快
      • 1.5.4、故障域分區多
    • 1.6、針對多集群現狀的解決方案
    • 1.7、解決方案下存在的問題
  • 二、架構選型
    • 2.1、實現目標
    • 2.2、為什么希望部分模塊是具有社區支持度的開源項目?
    • 2.3、Kubefed 的優勢與不足
    • 2.4、RHACM 的優勢與不足
    • 2.5、Karmada 現真身
  • 三、為什么選擇 Karmada?
    • 3.1、技術架構.
    • 3.2、技術優勢
    • 3.3、Karmada Resources 如何分發?
    • 3.4、Propagation 機制
    • 3.5、Work 機制
    • 3.6、Karmada 優勢
      • 3.6.1、資源調度
      • 3.6.2、容災
      • 3.6.3、集群管理
      • 3.6.4、資源管理
  • 四、落地展望
    • 4.1、云平臺集成
    • 4.2、跨集群調度
    • 4.3、跨集群伸縮
    • 4.4、跨集群故障恢復與高可用
  • 總結


前言

華為云 AI 主打智慧園區、智慧物流兩個行業數字化轉型的解決方案。AI 開發的難點較多,在未接觸 ModelArts 之前,首先在數據的預處理方面,標注會花費大量的時間;在訓練的時候需要購置很多的 GPU 的一些設備,這是價值不菲的;在部署方面非常的困難、繁瑣。近年來隨著云原生技術的不斷成熟,越來越多的企業選擇云原生作為數字化轉型的核心支撐,華為云率先提出云原生 2.0 的理念,將引領企業云化建設從“On Cloud”邁向“In Cloud”,進入智能升級新階段。

在這里插入圖片描述


一、工行業務背景

近幾年互聯網的崛起對金融領域的金融模式、服務模式產生了巨大的沖擊,迫使行業不得不做出巨大的革新。銀行業務系統“入云”已經是大勢所趨,在這方面工商銀行已經處于行業一線,截止目前已經形成了基礎設施云(Iaas)、應用平臺云(Paas)、金融生態云(SaaS)以及具有工行特色的分行云(BCloud)四位一體的云平臺架構。

1.1、工行云計算架構組成

工行云平臺具體架構如下圖所示:

在這里插入圖片描述
以上四大模塊各自分發所負責的內容如下:

  • 基礎設施云(IaaS):面向基礎設施運維人員,提供計算、存儲、網絡等底層資源快速供給的能力。
  • 應用平臺云(PaaS):面向應用運維人員,提供軟件資源(環境、中間件和應用程序)快速供給及快速部署的能力。
  • 金融生態云(SaaS):面向企業客戶,聯合合作伙伴,提供與工行金融服務緊密集成的行業解決方案,同時為合作伙伴提供 SaaS 軟件托管及運營管理服務。
  • 分行云(BCloud):面向工行的“公有云”,提供分行應用軟件托管、DevOps、運維管理能力并輸出總行新的一些云計算建設成果。

1.2、工行云平臺技術棧

工行云平臺基于業界領先云產品和開源主流技術,結合工行特色實現金融級自主定制,技術棧如下圖所示:

在這里插入圖片描述

  • 基于華為云 Stark 8.0 產品結合運營運維需求進行客戶化定制,構建新一代基礎設施云。
  • 通過引入開源容器技術 Docker、容器集群調度技術 Kubernetes 等,自主研發建設應用平臺云。
  • 基于 HaProxy、Dubbo、ElasticSerch 等建立負載均衡、微服務、全息監控、日志中心等周邊配套云生態。

1.3、工行金融云成效

1.3.1、入云規模同業最大

應用平臺云容器規模超 20w,業務容器規模 55000+,核心應用基本全面入容器云,入云情況如下圖所示:

在這里插入圖片描述

1.3.2、業務如云場景廣

應用入云涉及業務廣,并支撐多個關鍵領域,如以個人金融、線上渠道為代表的核心業務應用;以分布式服務框架、MySQL 數據庫為代表的技術支撐應用;以物聯網、區塊鏈、機器學習、大數據為代表的新技術領域應用,綜合情況如下圖所示:

在這里插入圖片描述

1.4、容災及高可用保障

  • 云平臺支持多層次故障保護機制,確保同一業務的不同實例會均衡分發到兩地三中心的不同資源域,在低粒度下細分故障域,確保單個存儲、單個集群甚至單個數據中心發生故障時,不會影響業務的整體可用性,調度情況如下圖所示:

在這里插入圖片描述

  • 在故障情況下,基于 k8s 自身優勢,云平臺通過容器重啟及自動漂移,實現故障的自動恢復,如下圖所示:

在這里插入圖片描述

1.5、PaaS 層多集群現狀

k8s 集群總數近百個,并且在不斷地擴張中,細究主要原因我們將其分為以下四點。

1.5.1、集群種類多

由于業務場景較為廣泛,支持 GPU 的設備、中間件、數據庫、底層的容器網絡,不同的需求導致產生不同的解決方案,所以需要為不同的業務場景定制不同的集群,如下圖所示:

在這里插入圖片描述

1.5.2、k8s 集群 node 數量限制

受到 k8s 本身性能的限制,每個集群都有自己數量的上限。

1.5.3、業務擴展快

截至目前,包括傳統應用在內的各個業務在源源不斷地切入到容器云內。

1.5.4、故障域分區多

以上述 1.4 內容為例,兩地三中心的設計,包括三個 DC,每個 DC 內部又通過不同的網絡區域防火墻進行隔離,以實現故障域分發,如下圖所示:

在這里插入圖片描述

1.6、針對多集群現狀的解決方案

在這里插入圖片描述

  • 容器云云管平臺超級管理員接納、運維多集群。
  • 上層業務應用自主選擇集群,包括網絡區域在內的等等內容。
  • 集群內同一模版故障域自動打散。

1.7、解決方案下存在的問題

  • 無跨集群自動伸縮。上了容器云之后,在業務峰值時集群內部缺乏自動伸縮能力。
  • 無跨集群調度能力。
  • 集群對上層用戶不透明。
  • 無跨集群故障自動遷移能力,整體上依靠“兩地三中心”架構上的冗余,在自動化恢復上的高可用能力存在缺失。

二、架構選型

2.1、實現目標

基于以上存在的問題,我們定下了相應的目標,并對目前業界所采用的方案進行了技術選型,五個多云的集群模塊目標如下表所示:

在這里插入圖片描述

2.2、為什么希望部分模塊是具有社區支持度的開源項目?

  • 希望整體的方案是在企業內部自主可控的。
  • 不希望花費更多的能力去重復“造輪子”。
  • 希望整體管理的多集群模塊是從云管平臺中隔離出來,下沉到下面的多集群管理模塊之中。

基于以上的目標,社區做了相當多的調研,包括但不局限于社區中眾多的項目。

2.3、Kubefed 的優勢與不足

優勢:本身可以解決部分問題,具有集群生命周期管理,具有部分 Override,以及一些基礎調度的能力,其能力如下圖所示:

在這里插入圖片描述
不足:調度層面太過于基礎,且 Kubefed 負責的社區團隊不準備在調度方面下更大的精力以支持如自定義的調度,包括不支持按資源余量的調度;最為人所詬病的一點——本身不支持原生 k8s 對象,需要在管理集群中使用其所新定義的一些 CRD,對于已經使用了很久原生 k8s 資源對象的上層應用,包括云管平臺在內對接的一些 API 則需要進行重新開發,而這部分的成本是非常巨大的;整體上不具備故障自動遷移能力。基于以上不足,綜合考量,Kubefed 我們暫不考慮。

2.4、RHACM 的優勢與不足

RHACM 是紅帽與 IBM 主導的項目,其功能架構如下圖所示:

在這里插入圖片描述

  • 功能比較健全,但僅支持 Openshift,對于存量大量 k8s 集群的現狀而言,改造的成本是巨大的。
  • 暫未開源,社區支持力度不夠。

2.5、Karmada 現真身

Karmada 整體的功能視圖如下圖所示:

在這里插入圖片描述
Karmada 相當契合我們在上述 2.1 小節中的實現目標要求,具有整體的集群生命周期管理、集群注冊,包括多集群的伸縮、調度、統一的 API、底層的標準 API 支持,并且 CNI、CSI 在其整體的功能視圖中,對 CI/CD 有整體上的規劃與考慮,所以工行最終決定投入到該項目中,與華為在內的一系列伙伴共建該項目并回饋到社區中。

三、為什么選擇 Karmada?

3.1、技術架構.

Karmada 目前經在社區中開源,相關信息及技術架構大家可以移步社區查看,主要架構如下圖所示:

在這里插入圖片描述

3.2、技術優勢

  • Karmada 以類 k8s 的形式部署,以作為管理面集群,改造成本較低。
  • Karmada-Controller-Manager 管理包括 cluster、policy、binding、works 等多種 CRD 資源作為管理端資源對象,沒有侵入到原生的 k8s 資源對象。
  • Karmada 僅管理資源在集群間的調度,子集群內分配高度自治,這對于分布式系統是必須的。

3.3、Karmada Resources 如何分發?

Karmada Resources 分發流程示意圖如下圖所示:

在這里插入圖片描述
Karmada Resources 分發流程如下:

  • 集群注冊到 Karmada。
  • 定義 Resource Template。
  • 制定分發策略 Propagation Policy。
  • 制定 Override 策略。
  • 看 Karmada 干活。

3.4、Propagation 機制

Propagation 機制分發如下:

在這里插入圖片描述
Propagation Policy 信息配置如下圖所示:

在這里插入圖片描述

  • 集群親和性。
  • 集群容忍。
  • 按集群標簽、故障域分發。

Resource Binding/Cluster Resource Binding 信息配置如下圖所示:

在這里插入圖片描述

  • 支持 cluster\namespace scope。

3.5、Work 機制

具體的 Work 分發機制如下圖所示:

在這里插入圖片描述
Work 信息配置如下圖所示:

在這里插入圖片描述

  • Works 僅是 k8s Resource 的封裝。
  • Works 的 status 作為子集群 resource 的反饋。

3.6、Karmada 優勢

經過驗證我們將 Karmada 的優勢分為以下四塊。

3.6.1、資源調度

  • 自定義跨集群調度策略。
  • 對上層應用透明。
  • 支持兩種資源綁定調度。

3.6.2、容災

  • 動態 binding 調整。
  • 按照集群標簽或故障域自動分發資源對象。

3.6.3、集群管理

  • 支持集群注冊。
  • 全生命周期管理。
  • 統一標準的 API。

3.6.4、資源管理

  • 支持 k8s 原生對象
  • works 支持子集群資源部署狀態獲取。
  • 資源對象分發既支持 pull 也支持 push 方式。

四、落地展望

4.1、云平臺集成

目前為止,在工行的測試環境中,Karmada 已經對現存集群進行了納管,存在的問題是如何與整體云平臺進行集成。

在這里插入圖片描述

4.2、跨集群調度

  • 故障域打散。
  • 應用偏好設置、權重。
  • 集群資源余量調度。

我們最終的期望實現效果如下圖所示:

在這里插入圖片描述

4.3、跨集群伸縮

在這里插入圖片描述

  • 跨集群伸縮與子集群伸縮之間的關系。
  • 跨集群伸縮與跨集群調度間的關系。

4.4、跨集群故障恢復與高可用

  • 子集群健康狀態的判斷策略。可能只是與管理集群失聯,子集群本身業務容器均無損。
  • 自定義的故障恢復策略。Like RestartPolicy、Always、Never、OnFailure。
  • 重新調度和跨集群伸縮的關系。

總結

本文介紹了工行云平臺的現狀,包括容災和多 k8s 集群,調研了業界多集群管理方案及選型,從而確定選擇 Karmada,介紹了包括其優勢、技術架構以及具體的機制,最后介紹了 Karmada 在工行的落地情況以及在未來中希望產生和應用的場景。從 Karmada 近日宣布開源之后,我們希望有越來越多的開發者加入到社區中,共建多云管理的社區生態。

在這里插入圖片描述


我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補充可以留言在文章下方,感謝大家的支持!

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

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

相關文章

EdgeGallery:聚焦 5 大行業場景,MEC 開源平臺將 5G 能力拓展到邊緣

文章目錄前言一、千行百業差異化的業務訴求1.1、5G 時代業務訴求的變化1.2、對 5G 邊緣計算開源平臺的需求二、MEC 如何實現 1 到 N 飛躍?2.1、MEC 突破面臨的問題有哪些?2.2、如何解決存在的問題?三、統一開放的 MEC 平臺應具備什么樣的條件…

計算機畢業設計答辯慌?軟工本科 Java EE 畢設項目答辯問題、答案匯總指南奉上

文章目錄前言一、關于數據庫的問題1.1、為什么采用 MySQL 數據庫?1.2、系統數據是如何跟數據庫進行交互?1.3、JDBC 連接數據庫所需四要素?1.4、JDBC 的操作步驟有幾步?二、關于應用服務器的問題2.1、Tomcat 應用服務器作用是什么&…

星光 SaaS 伙伴甄云科技:如何構建更適合快成長企業的數字化采購管理平臺?

文章目錄前言一、華為云助力中小企業快成長二、SaaS 伙伴-甄云科技介紹三、公司發展方向與要求的不匹配3.1、快速成長型公司案例-戴爾3.2、價值鏈和企業管理支撐不能匹配發展要求四、支撐業務成長面臨的挑戰4.1、企業轉型模式落后4.2、企業發展意識滯后4.3、企業轉型難以平衡五…

星光 SaaS 伙伴漢得信息:企業級 SaaS 能力構建,云原生賦能數字化創新

文章目錄前言一、華為云助力中小企業快成長二、星光 SaaS 伙伴-漢得信息2.1、企業基本介紹2.2、企業使命2.3、企業優勢三、數智時代特點3.1、消費互聯網的拐點3.2、產業互聯網的興起四、數智企業演進歷程4.1、回首過去4.2、展望未來五、Gartner 對業務組合能力的理解六、2022 年…

filter 灰度處理:公祭日,一行代碼讓頁面變成黑白色調

文章目錄前言一、實現原理剖析二、對需要修改的 CSS 定位三、具體代碼實現及灰度區分總結前言 公祭日其世界意義在于,促使人類歷史記憶長久保持喚醒狀態,而避免出現哪怕是片刻的忘卻與麻木,共同以史為鑒、開創未來,一起維護世界和…

軟件版本:下載 Eclipse 時 R/RC1/M3/M2/M1 Packages 是什么?有什么區別?

文章目錄前言一、R/RC1/M3/M2/M1 Packages二、版本釋義2.1、R Packages2.2、RC1 Packages2.3、M3/M2/M1 Packages總結前言 今天做項目 IDE 需要用到 Eclipse,許久未用發現我用的還是 2019 年 9 月份的版本,程序員強迫癥,所以得更新一下&#…

Java 答疑:為什么修改 Java 環境變量之后 java -version 不變?解決方式匯總

文章目錄前言一、錯誤場景預演1.1、查看本地舊版本1.2、java -version 不變問題產生二、檢查新安裝 JDK 是否配置正確2.1、下載并解壓目標 JDK2.2、配置 Java 環境變量2.3、注意 PATH 變量順序2.4、查看 Java 版本信息三、不同具體錯誤場景分析3.1、PATH 變量順序出錯解決方式3…

Eclipse 版本升級:如何不卸載舊版本 Eclipse 實現在線升級到最新版本?

文章目錄前言一、網上沒“升級 Eclipse”相關資料嗎?1.1、相關資料很少,我也生氣1.2、升級新版本與在線升級插件傻傻搞不清二、版本升級準備2.1、Eclipse 更新模式介紹2.2、檢查當前更新2.3、版本選擇介紹三、進行舊版本升級3.1、添加新版本存儲庫3.2、添…

《團隊激勵與溝通》第 1 講——激勵理論 重點部分總結

文章目錄 前言一、單選題二、多選題三、簡答題四、名詞解釋五、論述題總結前言 隨著社會經濟的發展,在軟件開發的過程中需要團隊合作,在團隊中通過有效溝通和激勵可以使工作狀態更好,從而設計和開發出完善的軟件產品。因此作為軟件工程專業的學生,需要掌握團隊激勵與溝通的…

《團隊激勵與溝通》第 2 講——激勵的方法與應用 重點部分總結

文章目錄 前言一、單選題二、簡答題三、名詞解釋四、論述題總結前言 隨著社會經濟的發展,在軟件開發的過程中需要團隊合作,在團隊中通過有效溝通和激勵可以使工作狀態更好,從而設計和開發出完善的軟件產品。因此作為軟件工程專業的學生,需要掌握團隊激勵與溝通的方法和技巧…

《團隊激勵與溝通》第 3 講——溝通概述與溝通過程 重點部分總結

文章目錄 前言一、簡答題總結前言 隨著社會經濟的發展,在軟件開發的過程中需要團隊合作,在團隊中通過有效溝通和激勵可以使工作狀態更好,從而設計和開發出完善的軟件產品。因此作為軟件工程專業的學生,需要掌握團隊激勵與溝通的方法和技巧,為將來的職業發展做好鋪墊。本文…

《團隊激勵與溝通》第 4 講——有效溝通與溝通的障礙 重點部分總結

文章目錄 前言一、單選題二、多選題三、簡答題總結前言 隨著社會經濟的發展,在軟件開發的過程中需要團隊合作,在團隊中通過有效溝通和激勵可以使工作狀態更好,從而設計和開發出完善的軟件產品。因此作為軟件工程專業的學生,需要掌握團隊激勵與溝通的方法和技巧,為將來的職…

《團隊激勵與溝通》第 5 講——溝通的技巧 重點部分總結

文章目錄 前言一、簡答題二、排序題總結前言 隨著社會經濟的發展,在軟件開發的過程中需要團隊合作,在團隊中通過有效溝通和激勵可以使工作狀態更好,從而設計和開發出完善的軟件產品。因此作為軟件工程專業的學生,需要掌握團隊激勵與溝通的方法和技巧,為將來的職業發展做好…

《團隊激勵與溝通》第 6 講——非語言溝通技巧與傾聽 重點部分總結

文章目錄 前言一、簡答題總結前言 隨著社會經濟的發展,在軟件開發的過程中需要團隊合作,在團隊中通過有效溝通和激勵可以使工作狀態更好,從而設計和開發出完善的軟件產品。因此作為軟件工程專業的學生,需要掌握團隊激勵與溝通的方法和技巧,為將來的職業發展做好鋪墊。本文…

《團隊激勵與溝通》第 7 講——團隊合作概述 重點部分總結

文章目錄 前言一、單選題二、簡答題總結前言 隨著社會經濟的發展,在軟件開發的過程中需要團隊合作,在團隊中通過有效溝通和激勵可以使工作狀態更好,從而設計和開發出完善的軟件產品。因此作為軟件工程專業的學生,需要掌握團隊激勵與溝通的方法和技巧,為將來的職業發展做好…

《團隊激勵與溝通》第 8 講——團隊合作技巧 重點部分總結

文章目錄 前言一、論述題總結前言 隨著社會經濟的發展,在軟件開發的過程中需要團隊合作,在團隊中通過有效溝通和激勵可以使工作狀態更好,從而設計和開發出完善的軟件產品。因此作為軟件工程專業的學生,需要掌握團隊激勵與溝通的方法和技巧,為將來的職業發展做好鋪墊。本文…

Eclipse 答疑:Eclipse 啟動失敗/無響應?loading workbench 閃退?解決方式匯總

文章目錄前言一、Eclipse 啟動無響應/失敗原因匯總二、沒有正確關閉 Eclipse2.1、出錯原因分析2.2、解決方式一2.3、解決方式二三、JDK 版本與 Eclipse 版本不適配3.1、出錯原因分析3.2、解決方式四、多個 Eclipse 安裝目錄沖突4.1、出錯原因分析4.2、解決方式五、安裝目錄中的…

Eclipse 插件升級:如何在線安裝/更新 Eclipse 中安裝的官方/第三方插件?

文章目錄前言一、區別 Eclipse 插件更新與 Eclipse 更新二、Eclipse 官方插件更新/安裝2.1、檢查更新2.2、確認更新安裝信息2.3、進行配置及插件升級2.4、重啟 Eclipse 更新成功三、第三方插件更新/安裝3.1、第三方插件更新/安裝流程3.2、安裝 Eclipse 官方提供的安裝框架3.3、…

Java 設計模式 Day1 之面向抽象原則:抽象(abstract)類的設計與應用分析

文章目錄前言一、抽象(abstract)類的設計要點二、抽象類的應用實例2.1、創建一個抽象類2.2、創建抽象類非抽象子類2.3、通過上轉型對象調用子類方法總結前言 面向抽象原則是面向對象四大基本原則的第一條,其重要性不言而喻,面向抽…

數據中心 PUE 優化模型生成服務:AI 浪潮下的數據中心的省錢攻略,就用這幾招

文章目錄前言一、數據中心節能能省一大筆錢1.1、全聯接世界推動數據中心市場持續高速發展1.1.1、用戶聯接激增1.1.2、全球數據中心基礎設施高速發展1.2、數據中心的增長帶來超額的用電量1.3、數據中心節能是必然趨勢1.4、什么是 PUE?1.5、數據中心制冷原理1.6、傳統…