当前位置: 欣欣网 > 码农

报名开启!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社区开源之夏课题一览