雲原生多雲多集羣Karmada|2024開源之夏8項課題邀您共創

本文分享自華爲雲社區《雲原生多雲集羣Karmada|2024開源之夏8項課題邀您共創》,作者:雲容器大未來。

開源之夏介紹

開源之夏2024學生報名4月30日開啓。開源之夏是由中國科學院軟件研究所“開源軟件供應鏈點亮計劃”發起並長期支持的一項暑期開源活動,旨在鼓勵在校學生積極參與開源軟件的開發維護,培養和發掘更多優秀的開發者,促進優秀開源軟件社區的蓬勃發展,助力開源軟件供應鏈建設。Karmada雲原生多雲容器引擎在今年帶來多雲多集羣領域8個課題,歡迎高校同學選報。

Karmada社區介紹

Karmada (https://github.com/karmada-io是業界首個多雲多集羣容器編排項目,也是雲原生計算基金會(CNCF)孵化級項目。Karmada 社區由華爲雲、工商銀行、小紅書、中國一汽等八家企業聯合發起,於2021年4月正式開源。Karmada 的貢獻者來自世界各地,覆蓋全球22個國家和地區的60多家組織,包括華爲、DaoCloud、浙江大學、滴滴、騰訊、小紅書、新浪、Intel、IBM、Red Hat、Comcast 等公司。截至目前,項目在開源軟件項目託管平臺 GitHub 已收穫超過4.1k Star。

Karmada (Kubernetes Armada) 是一個 Kubernetes 管理系統,它使您能夠在多個 Kubernetes 集羣和雲平臺中運行雲原生應用程序,而無需更改應用程序。通過使用 Kubernetes 原生 API 並提供高級調度功能,Karmada 實現了真正的開放式、多雲 Kubernetes。

1.png

Karmada社區將於 5月7日(週二)下午14:30社區例會開展開源之夏課題宣講,歡迎同學們關注參與!學生參會鏈接:https://zoom.com/my/karmada

Karmada社區開源之夏2024課題

課題一:Karmada 支持平滑回退單集羣能力

項目難度:基礎

項目社區導師:潘朝思(Super pan)

導師聯繫郵箱[email protected]

項目簡述:Karmada 支持納管單集羣並接管原單集羣上已部署的資源,也支持移除單集羣使其脫離 Karmada 的管控。移除單集羣時,Karmada 會清理該集羣上曾受 Karmada 管控的資源,但在某些移除場景下,用戶希望這些資源繼續保留在單集羣中。Karmada 希望吸引更多的用戶嘗試從單集羣演進到多集羣,該能力可以降低用戶的試錯成本,當用戶想從多集羣回退到單集羣時,儘可能避免對回退後的單集羣造成影響。

因此,我們計劃提供一種平滑回退能力,用戶在移除已納管的集羣時,可以配置將哪些資源保留,從而選擇性地將資源保留在原單集羣中。

項目鏈接:https://summer-ospp.ac.cn/org/prodetail/245c40436?lang=zh&list=pro

課題二:實現 Karmada Dashboard 的 Override Policy 管理功能

項目難度:進階

項目社區導師:盧傳佳(船長)

導師聯繫郵箱[email protected]

項目簡述:目前 Karmada Dashboard 已經支持了Cluster、PropagationPolicy 和 OverridePolicy 的展示的能力,社區目前正在重寫 Karmada Dashboard,希望可以完備的支持上述資源的管理能力。

我們希望能在 Karmada Dashboard 中完備的支持管理 OverridePolicy 的 Feature,支持通過 OverridePolicy 編輯器編輯和展示 OverridePolicy 資源,降低用戶使用的複雜度。

項目擴展:爲 YAML 版本的編輯器增加 LSP 的特性(本地 worker 和遠程 JSON-RPC 均可),降低用戶編寫 YAML 的複雜度;

項目鏈接:https://summer-ospp.ac.cn/org/prodetail/245c40342?lang=zh&list=pro

課題三:karmadactl 支持配置文件方式進行生產級環境安裝部署

項目難度:基礎

項目社區導師:梁遠鵬

導師聯繫郵箱[email protected]

項目簡述:Karmada 中提供了 karmadactl init 命令安裝方式,在命令執行中需要設置較多的參數,隨着社區的發展,用戶需要設置的參數將會越來越多,不便於用戶使用。爲了減少過多的命令行參數,我們提出了通過配置文件方式進行安裝部署。您需要理解並熟悉 karmadactl init 源碼,提交一份 karmadactl init 支持配置文件的 proposal 並且推動該 proposal 最終被 karmada 社區合併。該 proposal 的主要目標是減少過多的命令行參數,將參數以配置文件的方式逐步遷移,以及充分考慮方案的擴展性,在未來更方便的添加新的參數。

相關 issue:https://github.com/karmada-io/karmada/issues/3464

此外,karmadactl init 在部署過程中需要使用到多個容器鏡像,用戶無法方便的獲取到會使用到的容器鏡像列表。因此,我們計劃添加一個 images list 子命令允許用戶可以將 karmadactl init 過程中會使用到的容器鏡像打印在控制檯,該功能點作爲上述方案中的一個要素點實現。

相關 issue:https://github.com/karmada-io/karmada/issues/4086 。

項目鏈接:https://summer-ospp.ac.cn/org/prodetail/245c40186?lang=zh&list=pro

課題四:Karmada 根據分佈約束平均分配副本數

項目難度:進階

項目社區導師:何俊樺(whitewindmills)

導師聯繫郵箱[email protected]

項目簡述:在 Karmada 當前的調度器副本數分配策略中,我們已經支持複製、靜態權重、基於可用副本數的聚合、基於可用副本數的動態權重這四種副本分配方式。但是對於更爲複雜的調度場景:在跨AZ分佈約束之後,使工作負載的副本數儘可能地平均分配在所選擇的集羣中。目前 Karmada 還無法很好地支持這類場景。

因此我們計劃對當前的 Karmada 調度策略進行語義上的梳理,確定擴展現有的 API 亦或是改變原有的 API 設計,最終引入這一特性以滿足更多場景的調度需求。

相關 Issue:https://github.com/karmada-io/karmada/issues/4805

項目鏈接:https://summer-ospp.ac.cn/org/prodetail/245c40281?lang=zh&list=pro

課題五:Karmada 支持 OverridePolicy 動態配置機制

項目難度:進階

項目社區導師:蔣興彥(Chauncey)

導師聯繫郵箱[email protected]

項目簡述:Karmada 通過使用 Kubernetes 原生 API 並提供高級調度功能。Karmada 將雲原生應用調度到不同的成員集羣中時,針對不同的成員集羣,用戶可能需要一些差異化配置,例如,爲不同的成員集羣設置不同的環境變量或是設置不同的鏡像等。對此,Karmada 提供了一個差異化配置策略 API - OverridePolicy,可以爲不同的集羣設置一些差異化配置信息。

目前 OverridePolicy 的使用存在一個限制,它僅能設置一些靜態值,無法根據一些條件進行動態設置值,這個限制讓 OverridePolicy 的使用場景受限。因此我們希望提供一種能夠根據條件來動態設置值的機制。這提升了用戶使用 OverridePolicy 進行集羣差異化配置的靈活性,爲用戶帶來更多的擴展性。比如,用戶可以通過在 OverridePolicy 中定義 CEL 或者 lua 語言進行擴展,社區已經有相關 issue 跟蹤此任務,具體的解決方案需要繼續推進。

項目鏈接:https://summer-ospp.ac.cn/org/prodetail/245c40337?lang=zh&list=pro

課題六:Karmada Dashboard自動化i18n工具

項目難度:基礎

項目社區導師:丁文江(warjiang)

導師聯繫郵箱[email protected]

項目簡述:i18n 對國際化項目來說是十分重要的組成部分,在重寫 Karmada Dashboard的過程中,我們在開源社區發現很難找一套開箱即用的i18n工具。隨着項目規模的擴大,手動管理 i18n 能力不僅低效,同時手動管理 i18n 資源也很容易出錯。

因此我們希望可以開發一套 i18n 自動的化工具作爲 Karmada Dashboard 的配套,支持自動從 Karmada Dashboard 項目中提取中文字符、自動分配 i18n key、並替換原始的中文字符爲 i18n 翻譯的工具函數,並對提取到的中文字符調用第三方的翻譯 API 自動翻譯到目標語言。

項目擴展:

本地提供 i18n 翻譯結果的展示頁面,允許用戶查看 i18n 覆蓋情況;支持用戶手動修改 i18n 文案;

用 GPT 替代 OpenAPI 的翻譯實現,建立 Karmada Glossary,避免關鍵術語被自動翻譯提升翻譯質量。

項目鏈接:https://summer-ospp.ac.cn/org/prodetail/245c40338?lang=zh&list=pro

課題七:karmadactl 功能補齊以及運維體驗提升

項目難度:基礎

項目社區導師:任洪彩

導師聯繫郵箱[email protected]

項目簡述:karmadactl 是 Karmada 項目的命令行工具(CLI),用於 Karmada 用戶和管理員與 Karmada 間的交互。與 kubectl 相比,karmadactl 是一個完全專用於 Karmada 多集羣場景的 CLI 工具。當前 karmadactl 實現了 get、top 等命令在多集羣場景下的部分應用,但仍有部分場景有待實現和優化。

因此,我們計劃補齊 karmadactl 在多集羣場景下的功能,完成 karmadactl create/patch/edit 等命令的功能實現,優化 karmadactl get/apply 等命令的輸入輸出,進一步提高karmadactl的運維體驗。

項目鏈接:https://summer-ospp.ac.cn/org/prodetail/245c40397?lang=zh&list=pro

課題八:Karmada 組件 RBAC 權限最小化

項目難度:進階

項目社區導師:張壯

導師聯繫郵箱[email protected]

項目簡述:Karmada 項目使用 RBAC 鑑權來調節控制對計算機或網絡資源的訪問。如果在配置 RBAC 時分配了過大的資源對象訪問權限可能會導致權限濫用,以至於攻擊者擴大戰果,滲透集羣。如果配置 RBAC 時分配了過小的資源對象訪問權限,會導致組件功能異常。

因此,我們計劃梳理 Karmada 組件所需的最小 RBAC 權限集,修正 Karmada 倉當前的 RBAC 推薦配置,使其符合 RBAC 最小權限原則,最終用於指導 Karmada 用戶配置 Karmada 組件的 RBAC 權限。

項目鏈接:https://summer-ospp.ac.cn/org/prodetail/245c40153?lang=zh&list=pro

如何報名開源之夏Karmada課題?

2.png

報名對象

  • 本活動面向年滿 18 週歲的高校在校學生。
  • 暑期即將畢業的學生,只要申請時學生證處在有效期內,就可以報名活動。
  • 中國籍學生參與活動時需提供身份證、學生證、教育部學籍在線驗證報告(學信網)或在讀證明。
  • 外籍學生參與活動時需提供護照,同時提供錄取通知書、學生卡、在讀證明等文件用於證明學生身份。

4月30日-6月4日,符合條件的學生可以通過開源之夏官網(https://summer-ospp.ac.cn/)註冊、與導師溝通項目並提交項目申請。

與導師建立溝通

對Karmada社區開源之夏課題感興趣的同學,可以通過本文上方導師郵箱或社區宣講等方式,提前聯繫導師溝通課題要求,瞭解與鎖定適合自己的項目;

準備項目申請材料提交申請

1. 查看學生指南(https://summer-ospp.ac.cn/help/student/)中的【項目申請模板】,並根據要求準備相關材料。

2.點擊項目主頁中的【加入備選】按鈕,進入系統個人中心【我的項目】中點擊【查看】按鈕,上傳簡歷及項目申請書;

3. 對所有項目申請書進行優先級排序,若同時被多個項目選中,則根據提交的項目排序,優先中選優先級高的項目;

4. 點擊【排序並提交】按鈕提交全部項目申請。

學生可以收穫什麼?

  • 結識開源界小夥伴和技術大牛

  • 獲得社區導師的專業指導,與開源項目開發者深度交流

  • 豐富項目實踐經驗,提升項目開發技能

  • 爲學習方向提供參考,爲職業發展積累人脈

  • 通過結項考覈的學生將獲得結項獎金和結項證書(基礎難度稅前8000元RMB,進階難度稅前12000元RMB),更有機會獲選優秀學生

Karmada社區開源之夏課題宣講會

爲幫助同學們更好地瞭解與選定課題,Karmada社區將於 5月7日(週二)下午14:30社區例會開展課題宣講,歡迎同學們關注參與!學生參會鏈接:https://zoom.com/my/karmada

 

點擊關注,第一時間瞭解華爲雲新鮮技術~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章