當前位置: 妍妍網 > 碼農

報名開啟!2024開源之夏Karmada社群8項課題邀您共創

2024-05-10碼農

開源之夏介紹




開源之夏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。

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課題?

報名物件

  • 本活動面向年滿 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社群已舉辦8項課題宣 講會, B站搜尋「Karmada社群」或連結存取https://b23.tv/lMYgmsI 即可觀看課題宣講。

    或添加社群小助手 k8s2222

    回復 Karmada開源之夏 進入課題交流群

    Karmada 是CNCF 第一個多雲多集群容器編排計畫,旨在幫助使用者像使用單個集群一樣輕松管理跨雲多集群,讓基於 Karmada 的多雲方案無縫融入雲原生技術生態。社群吸引了來自華為、道客、浙江大學、滴滴、騰訊、中國電子雲等60多家公司的全球貢獻者,廣泛分布於22個國家和地區。Karmada 現已在華為雲、道客、興業數金、中國移動、中國聯通、攜程、360集團、新浪、中通快遞等眾多企業單位生產套用,為企業提供從單集群到多雲架構的平滑演進方案。

    Karmada官網: https://karmada.io/

    計畫地址: https://github.com/karmada-io/karmada

    Slack地址: https://slack.cncf.io/(#karmada)

    點選原文連結,檢視Karmada社群開源之夏課題一覽