1. 前言

本文档提供的信息属于上海燧原科技有限公司和/或其子公司(以下统称“燧原”)所有,且燧原保留不经通知随时对本文档信息或对任何产品和服务做出修改的权利。本文档所含信息和本文档所引用燧原其他信息均“按原样”提供。燧原不担保信息、文本、图案、链接或本文档内所含其他项目的准确性或完整性。燧原不对本文档所述产品的可销售性、所有权、不侵犯知识产权、准确性、完整性、稳定性或特定用途适用性做任何暗示担保、保证。燧原可不经通知随时对本文档或本文档所述产品做出更改,但不承诺更新本文档。

在任何情况下,燧原不对因使用或无法使用本文档而导致的任何损害(包括但不限于利润损失、业务中断和信息损失等损害)承担责任。燧原不承担因应用或使用本文档所述任何产品或服务而产生的任何责任。

本文档所列的规格参数、性能数据和等级需使用特定芯片或计算机系统或组件来测量。经该等测试,本文档所示结果反映了燧原产品的大概性能。系统配置及软硬件版本、环境变量等的任何不同会影响实际性能,产品实际效果与文档描述存在差异的,均属正常现象。燧原不担保测试每种产品的所有参数。客户自行承担对产品适合并适用于客户计划的应用以及对应用程序进行必要测试的责任。客户产品设计的脆弱性会影响燧原产品的质量和可靠性并导致超出本文档范围的额外或不同的情况和/或要求。

燧原和燧原的标志是上海燧原科技有限公司申请和/或注册的商标。本文档并未明示或暗示地授予客户任何专利、版权、商标、集成电路布图设计、商业秘密或任何其他燧原知识产权的权利或许可。

本文档为版权所有并受全世界版权法律和条约条款的保护。未经燧原的事先书面许可,任何人不可以任何方式复制、修改、出版、上传、发布、传输或分发本文档。为免疑义,除了允许客户按照本文档要求使用文档相关信息外,燧原不授予其他任何明示或暗示的权利或许可。

燧原对本文档享有最终解释权。

1.1. 版本申明

版本

修改内容

修改时间

v1.0

初始化

5/12/2022

v1.1

新增二次开发说明

5/22/2023

v1.2

更新组件文档说明

6/25/2023

v1.3

更新组件说明

7/03/2023

v1.4

更新一些词语

12/12/2023

1.2. 文档综述

GCU 是燧原的 AI 计算加速设备,TopsCloud 是基于 GCU 的K8S以及容器化解决方案。TopsCloud 支持 k8s部署和运维, 包括kubeone,gcu-operator, container-toolkit,k8s-device-plugin,gcu-exporter,gcushare等主要组件,其中kubeone负责部署k8s集群,gcu-operator负责部署和GCU相关组件,container-toolkit与k8s-device-plugin用于支持GCU k8s调度, gcu-exporter是gcu运行数据采集组件,gcushare是GCU k8s空分组件。

1.3. 专有名词解释

名词 描述
TopsCloud 燧原基于GCU的K8S集群化解决方案
enflame-container-toolkit 燧原基于GCU的容器化插件,用于在非特权模式下提供容器内GCU设备的支持,目前支持docker
k8s-device-plugin 燧原基于GCU的k8s插件,向k8s集群注册GCU资源
gcu-exporter 燧原GCU的数据采集组件,提供gcu设备运行相关指标的时序数据
gcu-feature-discovery 用于给GCU设备打上标签
gcu-operator 自定义资源GcuResource用于自动化管理gcu软件

2. 使用说明

注:当前topscloud完全离线部署功能尚未完成,有网络依赖条件的请参考相应文档本地构建镜像。

2.1. 一键部署使用说明

topscloud提供整体部署解决方案,支持脚本一键部署包括k8s集群,gcu相关插件,网络相关插件在内的所有组件,执行步骤如下:

  • 进入topscloud_/deployment

  • 执行./setup.sh install 即可自动部署k8s集群以及gcu相关组件和网络相关组件

2.2. 单独部署使用说明

topscloud支持组件单独部署

k8s集群使用说明

见kubeone用户手册,k8s_plugin用户手册,container-toolkit用户手册

gcu-operater使用说明

见gcu-operator用户手册

gcu-exporter使用说明

见gcu-exporter用户手册

node-feature-discovery使用说明

node-feature-discovery 保持了与开源版本一次,未做任何修改,使用说明见:

https://kubernetes-sigs.github.io/node-feature-discovery/stable/get-started/index.html

其他组件

其他独立组件见相应的组件文档,确认依赖组件已就绪后,依照用户手册进行安装使用。

3. 二次开发用户使用说明

3.1. 一般用户(内网用户)

1)见相应的独立组件用户使用手册

3.2. 需要二次开发的外网用户

1)见相应的独立组件用户使用手册;

2)安装包的Yaml配置文件里涉及 image的地方需要自我定义以及根据自己使用实际情况来修改,例如,以下文件里的image内容需要处于外网的二次开发用户参考用户文档自我DIY去定制:

./gcu-feature-discovery/deployments/gcu-feature-discovery-daemonset.yaml:        - image: artifact.enflame.cn/enflame_docker_images/enflame/gcu-gfd:latest
./k8s-operator/gcu-operator_2.0/enflame-resources/exporter/gcu-exporter-ds.yaml:          image: artifact.enflame.cn/enflame_docker_images/enflame/gcu-exporter:default
./k8s-operator/gcu-operator_2.0/enflame-resources/gcushare-scheduler-extender/deployment.yaml:          image: "artifact.enflame.cn/enflame_docker_images/enflame/gcushare-scheduler-extender:default"
./k8s-operator/gcu-operator_2.0/enflame-resources/gcushare-scheduler-extender/daemonset-config.yaml:      - image: "artifact.enflame.cn/enflame_docker_images/enflame/gcushare-config-manager:latest"
./k8s-operator/gcu-operator_2.0/enflame-resources/gcu-feature-discovery/gcu-feature-discovery-ds.yaml:        - image: artifact.enflame.cn/enflame_docker_images/enflame/gcu-gfd:default
./k8s-operator/gcu-operator_2.0/enflame-resources/driver/gcu-driver.yaml:          image: artifact.enflame.cn/enflame_docker_images/enflame/gcu-driver:default
./k8s-operator/gcu-operator_2.0/enflame-resources/node-feature-discovery/nfd-ds.yaml:          image: "artifact.enflame.cn/enflame_docker_images/enflame/node-feature-discovery:v0.11.3"
./k8s-operator/gcu-operator_2.0/enflame-resources/node-feature-discovery/nfd-ds.yaml:          image: "artifact.enflame.cn/enflame_docker_images/enflame/node-feature-discovery:v0.11.3"
./k8s-operator/gcu-operator_2.0/enflame-resources/gcushare-device-plugin/daemonset.yaml:      - image: "artifact.enflame.cn/enflame_docker_images/enflame/gcushare-device-plugin:default"
./k8s-operator/gcu-operator_2.0/enflame-resources/container-toolkit/gcu-docker-plugin.yaml:          image: artifact.enflame.cn/enflame_docker_images/enflame/gcu-runtime:default
./k8s-operator/gcu-operator_2.0/enflame-resources/k8s-device-plugin/enflame-device-plugin.yaml:          image: artifact.enflame.cn/enflame_docker_images/enflame/gcu-plugin:default
./prometheus/gcu-exporter/yaml/gcu-exporter.yaml:          image: artifact.enflame.cn/enflame_docker_images/enflame/gcu-exporter:latest
./prometheus/gcu-exporter/yaml/gcu-exporter-for-arm.yaml:          image: artifact.enflame.cn/enflame_docker_images/enflame/gcu-exporter:latest
./k8s-device-plugin/yaml/enflame-device-plugin.yaml:      - image: artifact.enflame.cn/enflame_docker_images/enflame/k8s-device-plugin:latest
./k8s-device-plugin/yaml_v1.9/enflame-device-plugin-v1.9.yaml:      - image: artifact.enflame.cn/enflame_docker_images/enflame/k8s-device-plugin-v1.9:latest
./k8s-device-plugin/yaml_v1.9/enflame-device-plugin-compat-with-cpumanager-v1.9.yaml:      - image: artifact.enflame.cn/enflame_docker_images/enflame/k8s-device-plugin-v1.9:latest
./k8s-device-plugin/yaml/enflame-vdevice-plugin.yaml:      - image: artifact.enflame.cn/enflame_docker_images/enflame/k8s-device-plugin:latest
./k8s-device-plugin/yaml/enflame-device-plugin-compat-with-cpumanager.yaml:      - image: artifact.enflame.cn/enflame_docker_images/enflame/k8s-device-plugin:latest

注:除了以上文件,也需要二次开发用户根据自己的实际使用情况梳理且修改相应的镜像,避免遗漏。

4. FAQ

4.1. 整体方案部署后,如何验证部署成功

进入topscloud_/deployment目录,执行./setup.sh install,如提示installed successfully,并且没有任何报错,表示安装成功

4.2. 如何卸载topscloud,卸载完的状态是怎样的

进入topscloud_/deployment目录,执行./setup.sh uninstall, 会卸载整个k8s集群,但是会保留docker组件