配置 AI 系统(beta)
本节介绍如何配置 AI 系统(beta)。
Beta期间配置
OpenSCOW AI当前处于Beta状态,其代码将会和OpenSCOW主线共存,但是OpenSCOW AI的版本发布周期将是独立的,不和OpenSCOW本身同步。
您可以在GitHub的Release中找到格式为ai-beta.{数字}的Release,这些Release以及对应的Tag均为OpenSCOW AI的Beta发布版本。快速到所有ai-beta. Release的链接点击此处。
要使用OpenSCOW AI的具体的版本,您需要修改install.yml的imageTag为一个具体的ai-beta.{数字}的tag,例如:
# 指定使用Beta 1版本
imageTag: ai-beta.1
您同样可以使用master来跟踪OpenSCOW主线以及其包括的OpenSCOW AI的最新功能。
前期准备
K8S 集群
AI 系统(beta) 需要用户在使用时提前部署 K8S 的集群环境。
当前 AI 系统(beta) 为试用版本,我们目前已经支持 docker 和 containerd 两种容器运行时的 k8s集群中使用 AI 系统。 若集群为containerd 运行时,需要在集群的节点上安装 nerdctl
当前试用版本中 K8S 部署的主要版本信息如下:
| 安装内容 | 版本信息 |
|---|---|
| kubernetes | v1.19.13 |
| Docker Engine | 19.03.12 |
K8S 调度服务
AI 系统(beta) 同样通过 OpenSCOW调度器适配器 来实现对 K8S 集群的调度服务。
同时为了满足提交 AI 作业、训练 AI 作业的功能,需要使用第三方调度插件 Kueue、 配置 Cluster Queue 的队列信息来协调和处理作业任务。
-
第三方调度插件 Kueue
Kueue 是一个用于 Kubernetes 的作业排队系统。它旨在管理和优化批处理作业和其他非实时工作负载的执行。 Kueue 的安装下载参照此链接。
-
配置 Cluster Queue
Cluster Queue 允许基于不同的策略和需求对作业进行分组管理。
Cluster Queue 的配置与实际部署的 K8S集群 情况紧密相关,推荐您按照 Cluster Queue 介绍 和实际部署集群的详细情况进行配置。
Harbor
当前 AI 系统(beta) 版本中 ,为了实现镜像的保存、上传、分享、复制、删除等功能,需要您已部署可访问的 Harbor 镜像仓库。同时需要您已在 Harbor 上创建了用于镜像管理的项目,并在 AI 服务配置文件中配置该项目名称。
我们在测试版本中支持通过 http 协议 实现的 Harbor API V2.0 版本接口的访问,为了您能流畅体验试用镜像功能,推荐您部署支持该版本接口的 Harbor 镜像仓库。
我们在试用版的测试环境中试用的 Harbor 版本信息为 版本v2.7.4-8693b25a。
并行文件存储服务
当前 AI 系统(beta) 版本中需要您已经提前安装部署了并行文件存储服务。
LDAP
当前 AI 系统(beta) 版本中我们仍然延续 OpenSCOW 系统的认证系统服务,采用基于 LDAP 认证系统进行用户认证。
在 K8S 集群中仍然需要像 OpenSCOW 系统的 hpc集群 一样,在管理节点安装 LDAP服务端 ,在所有节点安装 LDAP客户端 。
配置文件
集群配置文件
在当前 AI 系统(beta) 的试用版本中,我们支持了配置不同集群使用不同的服务(AI 或 HPC),需要在config/clusters/{K8S集群的ID}.yml中,添加如下内容
# 其他配置省略
# ...
# 集群在HPC或是否启用,默认为true
hpc:
enabled: true
# 集群在AI或是否启用,默认为false
ai:
enabled: false
此外我们支持了不同容器运行时,并提供了进入运行中的 k8s 作业容器的进行 shell 操作的功能。
为了能够在 Kubernetes 集群中通过 kubectl 进入到所有命名空间的容器中执行命令(例如 /bin/sh),需要提供一份 kubeconfig 配置文件。该配置文件的 current context 中的用户需要使用 ClusterRole 创建并具备一定的权限,这些权限包括对 pods/exec 的 create 操作,以及对 pods 的 get 和 list 操作。创建完成后,需要将 kubeconfig 文件放置到 OpenSCOW 部署目录中的 config 目录下,然后在config/clusters/{K8S集群的ID}.yml中,添加如下内容
# 其他配置省略
# ...
k8s:
# runtime: docker
# 默认为 containerd
runtime: containerd
# kubeconfig 相关配置
kubeconfig:
# 相对于 OpenSCOW 部署目录下 config 目录的路径
path: /kube/xxx
请在部署了 K8S 集群的集群配置文件中确认以下内容:
在config/clusters/{K8S集群的ID}.yml中,修改配置(使用 K8S适配器 的ip地址和端口号)
# 其他配置省略
# ...
adapterUrl: localhost:8972