全栈工程师开发手册 (作者:栾鹏)
一站式云原生机器学习平台
前言
开源地址:https://github.com/data-infra/cube-studio
cube studio 开源的国内最热门的一站式机器学习mlops/大模型训练平台,支持多租户,sso单点登录,支持在线镜像调试,在线ide开发,数据集管理,图文音标注和自动化标注,任务模板自定义,拖拉拽任务流,模型分布式多机多卡训练,超参搜索,模型管理,推理服务弹性伸缩,支持ml/tf/pytorch/onnx/tensorrt/llm模型0代码服务发布,以及配套资源监控和算力,存储资源管理。支持机器学习,深度学习,大模型 开发训练推理发布全链路。支持元数据管理,维表,指标,sqllab,数据etl等数据中台对接功能。支持多集群,边缘集群,serverless集群方式部署。支持计量计费,资源额度限制,支持vgpu,rdma,国产gpu,arm64架构。
aihub模型市场:支持AI hub模型市场,支持400+开源模型应用一键开发,一键微调,一键部署。
gpt大模型:支持40+开源大模型部署一键部署,支持ray,volcano,spark等分布式计算框架,支持tf,pytorch,mxnet,mpi,paddle,mindspre分布式多机多卡训练框架,支持deepspeed,colossalai,horovod分布式加速框架,支持llama chatglm baichuan qwen系列大模型微调。支持llama-factory 100+llm微调,支持大模型vllm推理加速,支持智能体私有知识库,智能机器人。
master节点
# 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld && iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
# 下载部署脚本
git clone -b v1.24.7+k3s1 https://github.com/k3s-io/k3s.git
cd k3s
# 设置版本
export INSTALL_K3S_VERSION=v1.24.7+k3s1
# 设置k8s部署配置
#export INSTALL_K3S_EXEC="--system-default-registry registry.cn-hangzhou.aliyuncs.com --write-kubeconfig ~/.kube/config --disable=traefik --cluster-cidr 10.72.0.0/16 --service-cidr 10.73.0.0/16"
export INSTALL_K3S_EXEC="--system-default-registry registry.cn-hangzhou.aliyuncs.com --write-kubeconfig ~/.kube/config --disable=traefik"
# 设置使用国内源
export INSTALL_K3S_MIRROR=cn
# 设置强制下载
export INSTALL_K3S_SYMLINK=force
#export INSTALL_K3S_FORCE_RESTART=true
# 设置镜像url
export INSTALL_K3S_MIRROR_URL=${INSTALL_K3S_MIRROR_URL:-'rancher-mirror.rancher.cn'}
# 替换github和storage 国内可以链接到的网络
export GITHUB_URL=https://githubfast.com/k3s-io/k3s/releases
export STORAGE_URL=https://k3s-ci-builds.s3.amazonaws.com
sed -i 's|^GITHUB_URL=.*|GITHUB_URL=https://githubfast.com/k3s-io/k3s/releases|' install.sh
sed -i 's|^STORAGE_URL=.*|STORAGE_URL=https://k3s-ci-builds.s3.amazonaws.com|' install.sh
# 部署
sh install.sh
# 打印master的token
cat /var/lib/rancher/k3s/server/node-token
# 设置 containerd 的 mirror
cat > /etc/rancher/k3s/registries.yaml <<EOF
mirrors:
docker.io:
endpoint:
- "http://hub-mirror.c.163.com"
- "https://docker.mirrors.ustc.edu.cn"
- "https://registry.docker-cn.com"
EOF
worker节点
单机部署的话,不需要添加worker节点
systemctl stop firewalld && systemctl disable firewalld && iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
git clone -b v1.24.7+k3s1 https://github.com/k3s-io/k3s.git
cd k3s
export INSTALL_K3S_VERSION=v1.24.7
export K3S_URL=https://myserver:6443
export K3S_TOKEN=XXX
sh install.sh
配置 Containerd
非必须,可以使用docker
K3s会在/var/1ib/rancher/k3s/agent/etc/containerd/config.toml 中为containerd 生成 confg.toml。
如果要对这个文件进行高级定制,你可以在同一目录中创建另一个名为 config.tom1.tmp1 的文件,此文件将会代替默认设置。config.toml.tmp1是一个Go模板文件,并且 (config:Nde 结构会被传递给模板。有关如何使用该结构自定义配置文件的 Linux和Windows 示例,请参阅此文件夹。conhg.Node golang结构定义在这里。
部署cube-studio
部署完k3s,就可以按照单机部署cube-studio来部署cube-studio了
将k8s集群的kubeconfig文件复制到install/kubernetes/config文件中,然后执行如下命令,其中xx.xx.xx.xx为机器内网的ip(不是外网ip)
# 在k8s worker机器上执行
sh start.sh xx.xx.xx.xx
清理
/usr/local/bin/k3s-killall.sh
/usr/local/bin/k3s-uninstall.sh
重启
sudo systemctl stop k3s
sudo systemctl start k3s
sudo systemctl stop k3s-agent
sudo systemctl start k3s-agent