1. 需求背景
- 借助 UK8S 现有集群管理能力管理边缘容器,避免重复造轮子
-
2. 方案概述
创建 UK8S 集群(托管版 / 专属版后),将 UEC 边缘 VK 插件,部署在 Cube 容器实例上(方案待验证),支持 Node 节点、VK 节点、边缘 VK 节点的混合部署和统一纳管。
- 备选方案:边缘 VK 插件部署在集群 Node 节点上,如托管版则需要至少存在一个 Node 节点
- UK8S 集群管理面:集成方,提供和用户交互(包括通过 Web 及 kubectl 命令行)入口,尽量不直接干预边缘容器、网络、存储的增删改查等
边缘 VK 插件:处理所有 UK8S 集群和边缘容器实例的交互工作,包括容器、网络、存储的增删改查等
3. 功能点列表
3.1 边缘虚拟节点处理
UEC 团队负责提供边缘 VK 增删改查相应的 API,对边缘 VK 的增删改查,统一由 UEC 的相关 API 进行处理
- UK8S 团队负责在 UK8S API 中调用、兼容相应 UEC API | 功能点 | 功能详述 | 优先 | 备注 | | —- | —- | —- | —- | | 添加边缘 VK 节点 | 往 UK8S 中添加一个边缘 VK 节点 | P0 | UK8S 需新增AddUK8SUECVKNode | | 获取节点列表 | 需要在UK8S的前端页面中展示边缘 VK 节点,部分字段可能不支持,可为空。 | P0 | 兼容ListUK8SClusterNodeV2 | | 节点描述 | 返回数据格式与现在 Node 信息一致,部分字段可能不支持,可为空 | P1 | 兼容 DescribeUK8SNode | | 获取边缘 VK 节点中的 Pod | 获取通过边缘 VK 节点创建的边缘容器实例 | P1 | 兼容 ListUK8SPod | | 删除边缘 VK 节点 | 删除边缘 VK 节点后,通过边缘 VK 节点创建的边缘容器实例、IP 等也将被删除 | P1 | UK8S 需新增DeleteUK8SUECVKNode | | 禁用节点 | 禁用边缘 VK 节点 | P1 | 兼容 CordonUK8SNode | | 边缘 VK 节点升级 | 是否需要提供边缘 VK 节点升级功能? | P1 | | | 集群升级 | 需要忽略边缘 VK 节点 | P2 | | | CloudProvider、CNI等升级 | 需要忽略边缘 VK 节点 | P2 | |
3.2 边缘容器实例处理
- 边缘容器实例及相应 IP 等资源的创建、删除,均由边缘 VK 插件负责处理
- UEC 团队需要给出相应的文档等,UK8S 进行联调
| 功能点 | 功能详述 | 优先级 |
| —- | —- | —- |
| 创建边缘容器 | 通过 Deploy、Sts 等或直接创建边缘容器 | P0 |
| 返回边缘容器信息 | 返回 describe 边缘容器的信息 | P0 |
| 更新边缘容器 | 边缘容器的更新 | P0 |
| 删除边缘容器 | 删除边缘容器(包括 Deploy 更新、边缘 VK 节点移除等场景) | P0 |
| VK Stream 日志 | 可通过 kubectl log 查看边缘容器日志 | P1 |
| 绑定边缘 EIP | 创建边缘容器时,绑定边缘 EIP
| P2 | | 存储支持 - 块存储 |
| P2 | | 存储支持 - 文件存储 | | P2 |
4. 功能点详细设计
https://www.yuque.com/cncfucloud/cncfucloud/hpcknr
5. 待办事项记录
- 【UK8S】验证 Cube 部署边缘 VK 节点的可行性,并和 UEC 进行联调测试
- 【UEC】确认第一期需要完成的功能项(我想是第一期完成 P0、P1,看是否要调整)
- 【UEC】根据既定的功能项,进行开发(主要是边缘 VK 插件),并进行 API 的封装
- 【待定】前端交互页面的设计
- 【UK8S】API 的联调
- 【待定】前端开发
- 【UEC&UK8S】整体联调