快速部署
请先执行本指南的前述章节操作,包括:环境依赖、部署 Kubernetes 集群、部署集群网络。升级版本可能会需求执行一些sql等操作,请参考升级说明
部署环境
安装如下软件环境:
- Kubernetes v1.16.3+
- Docker v18.09.7+
- Helm v3.10.0+
Helm v3.10.0 安装可参加 Helm 官网安装教程。
请注意:当前版本的章鱼系统服务只支持amd或x86架构。若集群中有其他架构(如arm架构)的节点,建议将其他架构的节点作为计算节点使用。部署时可在amd或x86节点上打上标签octopus.openi.pcl.cn/node=server
,以确保章鱼系统服务只在amd或x86的节点上部署运行。
部署章鱼系统
创建Kubernetes标签
在准备启动章鱼服务的服务节点上打上以下标签(如果不想打该标签,请修改配置文件 values.yaml 中的 global.nodeSelector 属性):
kubectl label node {nodeName} octopus.openi.pcl.cn/node=server
在准备启动 nginx 服务的节点上打上以下标签:
kubectl label node {nodeName} nginx-ingress=yes
为英伟达gpu节点打上以下标签:
kubectl label node {nodeName} hardware-type=NVIDIAGPU
为华为npu节点打上以下标签:
kubectl label node {nodeName} hardware-type=ASCENDNPU
为燧原gcu节点打上以下标签:
kubectl label node {nodeName} hardware-type=ENFLAMEGCU
为寒武纪mlu节点打上以下标签:
kubectl label node {nodeName} hardware-type=CAMBRICONMLU
添加Chart仓库
执行以下命令增加 Chart 仓库:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add ocharts https://git.openi.org.cn/OpenI/octopus-charts/raw/branch/master
添加成功后同步仓库信息,如下:
helm repo update
这里可以先查看章鱼系统已有的安装包版本,如下:
helm search repo ocharts
然后将章鱼系统对应版本的 chart 包下载到本地,并解压,如下:
helm pull ocharts/octopus --version vx.x.x
tar -zxvf octopus-vx.x.x.tgz
配置values.yaml文件
部署章鱼 chart 包时,需要修改部署包中的一些参数,这些参数都配置在安装包解压后目录中的 values.yaml 文件。章鱼 chart 包具体参数含义和默认值,可参考解压目录下README.md文件,或在此链接 ,选择对应版本后查看配置信息。
下面遵循最小化部署的原则,介绍在大多数场景中会涉及修改的配置项:
数据持久化配置
数据持久化配置关系到系统运行过程相关数据的存储策略,相关配置项包括:
pv.minio
配置项主要确认数据集
,算法
,模型
等数据的存储位置,这部分需要采用有共享能力的存储方案,比如:nfs,ceph,lustre等;pv.mysql
配置项主要确认系统关系型的结构化数据的存储位置,比如用户信息,群组信息等;pv.redis
配置项主要确认对数据库数据缓存信息的存储位置;pv.logger
配置项主要确认训练任务日志数据的存储位置;
以上4
个配置项都有2
个子属性配置项,包括:
requests
子属性配置项,该项主要对应Kubernetes中PersistentVolume
资源的spec.capacity.storage
属性(参考 ),可抽象理解为存储的容量大小.storageType
子属性配置项,该项属于对象类型,主要对应Kubernetes中PersistentVolume
资源的具体存储类型的定义(参考 ).
下面我们通过一些例子来说明:
1.配置项使用nfs存储定义
pv:
minio:
requests: 100Gi
storageType:
nfs:
// nfs服务地址
server: 192.168.1.2
// nfs中的目录
path: /data/minio
2.配置项使用hostPath存储定义
pv:
minio:
requests: 100Gi
storageType:
// 本地文件存储地址
hostPath:
type: Directory
// 本地文件存储目录
path: /data/minio
镜像仓库配置
在配置中填入仓库服务的地址与信息.
注意: 由于
harbor
发行版本中接口版本有v1.0
与v2.0
之分,请先确认已部署的harbor
的版本,并修改配置项baseserver.data.harbor.apiVersion
的值.
配置项
apiVersion
可选值有:"","v1.0","v2.0". 空字符默认为"v2.0"
配置项
useSSL
为协议是否为https
baseserver:
data:
harbor:
host: xxx.xxx.xxx.xxx:xxx
username: xxx
password: xxx
apiVersion: v2.0
useSSL: true
harbor:
# true为自动安装harbor;章鱼旧版本已经单独手动安装过harbor的场景,这里可以设置为false
enabled: true
externalURL: https://xxx.xxx.xxx.xxx:xxx
管理员账号配置
baserserver 服务中对系统管理员初始账号的设置,注意只在第一次安装集群时,将会以系统管理员初始账号的配置信息初始化管理员账号,之后的升级或重装,只要数据没有清理,将不会做修改,相关配置信息如下:
baseserver:
administrator:
username: "admin"
password: "123456"
email: ""
phone: ""
依赖组件账号配置
根据需要可修改Mysql、Minio等依赖组件的账号密码
安装Octopus
通过 Helm 命令安装,进入到解压后的octopus目录,`--debug --dry-run`为调试模式,只会输出 yaml 不传给 k8s,真正安装需要去掉.如下:
helm install octopus ./ --values values.yaml
更新Octopus
如果已经使用 helm install 成功安装过 chart 包 通过 Helm 命令更新.如下:
helm upgrade octopus ./ --values values.yaml
验证
在部署节点上执行以下命令,查看所有服务是否启动成功:
kubectl get pod
执行安装操作后,可通过浏览器登录前端页面验证是否安装成功。假设 nginx 服务是部署在 IP 为xxx.xxx.xxx.xxx 的服务器上。 首先登录管理员端页面,登录信息为:
地址:xxx.xxx.xxx.xxx/admin/
账号:admin
密码:123456
登录管理员页面后,可以通过页面注册普通用户账号,然后用注册好的账号密码登录用户端页面。登录信息为:
地址:xxx.xxx.xxx.xxx/openai/
卸载Octopus
命令行下执行以下命令:
helm uninstall octopus