开源之夏是什么?


开源之夏是由“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展,培养和发掘更多优秀的开发者。


活动联合国内外各大开源社区,针对重要开源软件的开发与维护提供项目任务,并面向全球高校学生开放报名。


学生可在本活动中自主选择感兴趣的项目任务进行申请,并在中选后获得该开源项目资深维护者(社区导师)亲自指导的机会,完成项目并贡献给社区后,参与学生还将获得开源之夏活动奖金和结项证书。


项目简介


作为阿里巴巴开源的一款帮助分布式应用快速进行打包、交付和运行的解决方案,sealer 可以通过把分布式应用及其数据库中间件等依赖项一起打包来解决复杂应用的交付问题。


sealer 构建出来的产物我们称之为集群镜像,集群镜像里内嵌了一套完整的 Kubernetes + 容器,它们双剑合璧,解决了分布式应用的交付一致性问题。


sealer 已经进入 CNCF sandbox。


点击查看「开源夜聊第一期:聊聊 sealer 开源背后的故事」:​https://www.bilibili.com/video/BV1w541197Ht/​


题目简介


sealer runtime 扩展,支持 k3s k0s


报名进入尾声,赶快申请加入 sealer 开源之夏吧!_sealer


sealer 架构分成两大块,Build 模块与 Run 模块,其中 Run 部分主要分成三层,最底层对接各种基础设施,如裸服务器,各种公有云,Runtime 层面支持具体的 K8s 实现,如 kubeadm k3s k0s 等,一旦扩展了 runtime 意味着用户构建镜像的时候就可以这样:


FROM k3s:latest
COPY mysql .
CMD kubectl apply -f mysql


使用 sealer build -t k3s-with-mysql:latest . 构建一个在 k3s 上面的 mysql 集群镜像运行时只需要:sealer run 3s-with-mysql:latest 即可运行一个 k3s 并且启动 mysql 集群本次题目主要是实现 runtime 的 interface:


type Interface interface {
Init(cluster *v2.Cluster) error
Upgrade() error
Reset() error
JoinMasters(newMastersIPList []string) error
JoinNodes(newNodesIPList []string) error
DeleteMasters(mastersIPList []string) error
DeleteNodes(nodesIPList []string) error
GetClusterMetadata() (*Metadata, error)
UpdateCert(certs []string) error
}


制作并提供 k3s k0s 的基础镜像,使用户可以通过 sealer 一键使用 k3s k0s


参与要求


  • 熟悉 docker/kubernetes 等技术
  • 有一定的源码阅读能力
  • 熟悉 golang


项目地址:https://github.com/sealerio/sealer

导师邮箱:zhongyi.fht@alibaba-inc.com 


点击“此处”即可报名申请 sealer 开源之夏!