minik8s
2023年《SE3356 云操作系统设计与实践》课程第一小组项目,简易的Kubernates容器编排工具,通过go语言实现。具体详细文档请参考后续。
小组成员简介如下:
姓名 | 学号 | Github主页 | 成员 |
---|---|---|---|
董云鹏 | 517021910011 | @dongyunpeng-sjtu | 组长 |
冯逸飞 | 520030910021 | @every-breaking-wave | 组员 |
张子谦 | 520111910121 | @Musicminion | 组员 |
caution
由于Gitee和Github之间的同步问题,在Gitee上面显示的用户名可能出现多个(目前显示有9个用户名,实际均为组内成员)。关于此问题详细的对应名单和解释如下:
- Github的组员的用户名和上面的表格一致对应
- Gitee中的Musicminion、zhangziqian相关的用户名对应的组员张子谦
- Gitee中的云中对应的组员董云鹏
- Gitee中的root对应的部署上云后的jCloud运维账户,因为jCloud的用户就是root
- Gitee中的wave、If Wind、breaking-wave用户对应的组员冯逸飞(这也是我们选择Weave网络插件的原因)
项目仓库的原始地址:
文档相关的地址:
info
特别感谢:
- 多库龙为本网站的搭建提供的框架支持!
- Microsoft Stream提供的视频播放平台支持!
- netlify为我们的网站免费部署提供了强大的支持!
开发时间线
- 2023-03-02组队完成
- 2023-04-10创建仓库,项目启动
- 2023-04-15创建第一个Feature分支,开始第一个功能,计划Containerd作为运行时
- 2023-04-16Etcd存储的读取和写入完成
- 2023-04-20Containerd的文档太少,无法开发切换到Docker SDK
- 2023-04-22API Server的基本框架完成
- 2023-04-25中期答辩,基本没实现任何功能和抽象,同天完成CICD的配置
- 2023-04-29核心机制WatchList机制完成、MessageQueue机制完成
- 2023-05-03Kubelet的架构初步设计好,确定使用Redis作为缓存
- 2023-05-12实现了Service抽象的EndPoint
- 2023-05-15Kubelet的代码完成,Pod抽象首次能够正常运转
- 2023-05-20GPU-抽象进行时,Service基本完成,修复IPTable问题
- 2023-05-21GPU-抽象完成,耗时仅仅两天(一个周末),周六可是520哦~
- 2023-05-21RepliaSet抽象启动,开始完成了API-Server的部分,答辩时间确定为十六周
- 2023-05-22[15周周一]Musicminion发烧了,当天写完了RepliaSet抽象,基本可用,DNS抽象启动
- 2023-05-23[15周周二]DNS抽象由Every-Breaking-Wave基本实现
- 2023-05-24[15周周三]计划实现HPA抽象,简单的写了一部分,DNS修复完成
- 2023-05-25[15周周四]确认换题Serveless,Musicminion开始写FuncServeless抽象,Every-Breaking-Wave的HPA同步开始
- 2023-05-25[15周周五]继续写FuncServeless抽象
- 2023-05-28[15周周末]勉强完成Workflow和Func抽象,准备多机上云测试
- 2023-05-28[15周小结]本周完成DNS/HPA/ReplicaSet/Serveless。平均两天一个功能
- 2023-05-30[16周周二]开始录制视频(本来是周二答辩,后来延期)
- 2023-05-31[16周周三]视频更换了录制方式,录制了前面一部分的,同步开始剪辑、文档
- 2023-06-01[16周周四]录制视频、PPT制作、视频剪辑
- 2023-06-02[16周周五]答辩,全部功能完成
- 2023-06-05[16周周末]文档完善!结束收工!
开发回忆
每天晚上开发的地方: