Skip to main content

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-16
    Etcd存储的读取和写入完成
  • 2023-04-20
    Containerd的文档太少,无法开发切换到Docker SDK
  • 2023-04-22
    API Server的基本框架完成
  • 2023-04-25
    中期答辩,基本没实现任何功能和抽象,同天完成CICD的配置
  • 2023-04-29
    核心机制WatchList机制完成、MessageQueue机制完成
  • 2023-05-03
    Kubelet的架构初步设计好,确定使用Redis作为缓存
  • 2023-05-12
    实现了Service抽象的EndPoint
  • 2023-05-15
    Kubelet的代码完成,Pod抽象首次能够正常运转
  • 2023-05-20
    GPU-抽象进行时,Service基本完成,修复IPTable问题
  • 2023-05-21
    GPU-抽象完成,耗时仅仅两天(一个周末),周六可是520哦~
  • 2023-05-21
    RepliaSet抽象启动,开始完成了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周周末]文档完善!结束收工!

开发回忆

每天晚上开发的地方: