cube-studio/install/README.md

77 lines
4.1 KiB
Markdown
Raw Normal View History

2022-05-05 14:35:05 +08:00
# 平台基础架构
2022-05-10 11:52:23 +08:00
![image](https://user-images.githubusercontent.com/20157705/167534673-322f4784-e240-451e-875e-ada57f121418.png)
2022-05-05 14:35:05 +08:00
完整的平台包含
- 1、机器的标准化
- 2、分布式存储(单机可忽略)、k8s集群、监控体系(prometheus/efk/zipkin)
2022-10-10 14:26:22 +08:00
- 3、基础能力(tf/pytorch/mxnet/valcano/ray等分布式nni/ray超参搜索)
2022-05-05 14:35:05 +08:00
- 4、平台web部分(oa/权限/项目组、在线构建镜像、在线开发、pipeline拖拉拽、超参搜索、推理服务管理等)
2022-05-18 20:40:26 +08:00
# 组件说明
| 命名空间 | 组件名 | 组件说明 |
| :-----| :---- | :---- |
| infra | kubeflow-dashboard | cube-studio平台的web前后端 |
| infra | kubeflow-dashboard-init | cube-studio平台初始化任务用来创建数据库初始化表和记录 |
| infra | kubeflow-dashboard-schedule | 用来调度cube-studio系统自带的调度任务比如定时清理 |
| infra | kubeflow-dashboard-worker | 用来执行cube-studio系统自带的调度任务比如定时清理 |
| infra | kubeflow-watch | 用来监控cube-studio平台中的任务发起通知和信息更新 |
| infra | mysql | 平台元数据的存储 |
| infra | redis | 平台缓存,和异步任务对接 |
| kube-system | kubernetes-dashboard-cluster | k8s中pod的管理界面 |
| kube-system | dashboard-cluster-metrics-scraper | k8s中pod的管理界面上的pod资源使用情况的插件 |
| kube-system | nvidia-device-plugin-daemonset | k8s中使用机器gpu驱动和设备的插件 |
| kube-system | kube-batch | 批调度插件在同时调度多个pod时必须要同时满足所有pod资源需求才进行调度的组件 |
| kube-system | metrics-server | 集群资源使用情况的指标采集用来在hpa时使用 |
| kube-system | kubeflow-prometheus-adapter | 用来将prometheus采集的指标转化为可以用来控制hpa的指标 |
| kubeflow | frameworkcontroller | nni超参搜索需要的分布式组件 |
| kubeflow | metadata-* 和 ml-pipeline-* | pipeline跟踪调试组件 |
| kubeflow | minio | 对象存储 |
| kubeflow | mpi-operator | mpi分布式训练 |
| kubeflow | mxnet-operator | mxnet分布式训练 |
| kubeflow | pytorch-operator | pytorch分布式训练 |
| kubeflow | tf-job-operator | tf分布式训练 |
| kubeflow | workflow-controller | argo 云原生调度 |
| istio-system | istio-ingressgateway | 入口网关,用来代理所有外部访问 |
| istio-system | cluster-local-gateway | 入口网关,用来代理所有内部访问 |
| istio-system | 其他 | istio基础组件 |
| monitoring | dcgm-exporter | gpu机器资源监控 |
| monitoring | node-exporter | cpu机器资源监控 |
| monitoring | prometheus-k8s | 监控数据存储服务 |
| monitoring | grafana | 监控数据可视化 |
| volcano-system | 全部 | volcano分布式和批调度 |
| jupyter | docker-* | 用户创建的在线构建镜像的pod |
| jupyter | 其他 | 用户创建的在线notebook |
| service | 全部 | 用户创建的内部服务和推理服务 |
| pipeline | 全部 | 用户创建的pipeline任务 |
2022-05-05 14:35:05 +08:00
# 平台部署流程
基础环境依赖
- docker >= 19.03
- kubernetes = 1.18
- kubectl >=1.18
2022-05-10 11:52:23 +08:00
- cfs/ceph 挂载到每台机器的 /data/k8s/
2022-09-30 18:42:41 +08:00
- 单机 磁盘>=200G 单机磁盘容量要求不大,仅做镜像容器的存储
2022-05-10 11:52:23 +08:00
- 控制端机器 cpu>=16 mem>=32G
2022-05-05 14:35:05 +08:00
- 任务端机器,根据需要自行配置
本平台依赖k8s/kubeflow/prometheus/efk相关组件请参考install/kubenetes/README.md 部署依赖组件。
平台完成部署之后如下:
2022-05-13 13:08:12 +08:00
<img width="100%" alt="167874734-5b1629e0-c3bb-41b0-871d-ffa43d914066" src="https://user-images.githubusercontent.com/20157705/168214806-b8aceb3d-e1b4-48f0-a079-903ef8751f40.png">
2022-05-05 14:35:05 +08:00
2022-05-10 11:52:23 +08:00
# 本地开发
2022-05-05 14:35:05 +08:00
2022-05-10 11:52:23 +08:00
管理平台web端可连接多个k8s集群用来在k8s集群上调度发起任务实例。同时管理多个k8s集群时或本地调试时可以将k8s集群的config文件存储在kubeconfig目录中按照$ENVIRONMENT-kubeconfig 的规范命名
2022-05-05 14:35:05 +08:00
2022-05-10 11:52:23 +08:00
./docker 目录包含本地开发方案涉及镜像构建docker-compose启动前端构建后端编码等过程
2022-05-05 14:35:05 +08:00
参考install/docker/README.md