本文为您介绍如何在ACK容器服务中部署PAI轻量化控制台,如何使用PAI轻量化功能,请联系您的商务经理。
使用限制
仅支持阿里云ACK容器服务。
步骤一:创建集群
登录容器服务管理控制台。
在集群列表,单击创建集群。
在ACK 托管集群页签的集群配置配置向导页面,配置以下参数,并单击下一步:节点池配置。
其中关键参数配置如下,其他参数配置,详情请参见创建Kubernetes托管版集群。
集群规格:Pro版。
Kubernetes版本:选择1.28.15-aliyun.1。
专有网络:选择专有网络,后续创建的RDS、ACR、NAS需要保证与ACK在同一个VPC下。
API server访问:使用按量付费,并选中使用EIP暴露API server。
网络插件:选择Flannel。
节点 Pod 数量:建议配置128个及以上。
在节点池配置配置向导页面,配置以下关键参数(其他参数可以使用默认值),并单击下一步:组件配置。
容器运行时:选择containerd 1.6.36。
管控ECS要求
实例配置方式:选择指定实例规格。
实例规格:每台实例规格建议大于等于16核32 GiB。
系统盘:如果您希望使用内置MySQL,而不希望额外购买RDS作为数据库存储,则必须选择ESSD云盘(不是高效云盘,某些特定机型才支持,例如内存型ECS)。因ES存储日志占用较大,系统盘大小建议配置为500 GiB。
计算ECS要求
数据盘:建议增加一块数据盘,因运行时容器可能占用较大空间,建议数据盘大小配置为500 GiB。
在组件配置配置向导页面,配置参数,并单击下一步:确认配置。
以下参数必须按照要求配置,其他参数可以使用默认值。
Ingress:必须选择Nginx Ingress,负载均衡类型选择公网,否则将无法正常访问PAI控制台。
容器监控:必须选中容器集群监控 Pro 版,否则将无法正常查看PAI的资源监控信息。
在确认配置配置向导页面,确认配置参数,并单击创建集群。
等待大约10分钟,集群即可创建成功。
步骤二:创建RDS
如果您打算使用内置MySQL,可以忽略该步骤。
如果您采用阿里云RDS,需要按照以下操作步骤,完成准备工作。
创建RDS实例,具体操作,请参见创建RDS MySQL实例。
创建数据库账号和6个数据库,包括dlc、notebook、eas、pai_console、pai_user、paiflow,具体操作,请参见第一步:快捷创建RDS MySQL实例与配置数据库。
根据RDS地址信息、账号信息到集群创建mysql-secret对象。
通过kubectl工具管理集群,具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群。
在集群中创建mysql-secret对象。
kubectl create ns pai-system kubectl apply -f mysql-secret.yaml --- apiVersion: v1 kind: Secret metadata: name: mysql-secret namespace: pai-system type: Opaque stringData: MYSQL_HOST: "RDS地址" MYSQL_USER: "******" MYSQL_PASSWORD: "******"
添加白名单。
您需要在RDS控制台,将ACK集群的所有管控ECS(通常是前3台)添加至RDS允许的白名单中,这样PAI的服务才有权限访问RDS,具体操作,请参见设置IP白名单。
步骤三:创建ACR
按照以下操作步骤,完成准备工作。
创建同ACK集群在同一个VPC下的ACR实例,并使用
docker push
命令上传一份基础镜像到ACR仓库内,具体操作,请参见在容器服务ACK中使用ACR。在集群中创建docker-registry-secret对象。
kubectl create ns pai-system kubectl apply -f docker-registry-secret.yaml --- apiVersion: v1 kind: Secret metadata: name: docker-registry-secret namespace: pai-system type: Opaque stringData: DOCKER_REGISTRY_HOST: "***.cn-hangzhou.cr.aliyuncs.com" DOCKER_REGISTRY_PORT: "" DOCKER_REGISTRY_NAMESPACE: "eflops" DOCKER_REGISTRY_USERNAME: "******" DOCKER_REGISTRY_PASSWORD: "******"
步骤四:注册OAuth应用认证信息
创建应用,并获取应用ID,具体操作,请参见创建应用。
其中:
应用名称和显示名称:按照要求配置,无特殊要求;
应用类型:选择WebApp。
回调地址:需要您根据创建的集群自行填写。格式为
http://pai-user.${SERVICE_DOMAIN}:${CLUSTER_INGRESS_HTTP_PORT}/api/v1/users/loginbyram
。其中:$SERVICE_DOMAIN:为您创建的集群的测试域名,如何获取测试域名,详情请参见创建Kubernetes托管版集群;${CLUSTER_INGRESS_HTTP_PORT}:配置为80。
应用创建完成后,请保存应用ID(即clientId)。
添加应用范围,具体操作,请参见添加应用范围。
添加应用范围时,需要选择aliuid和profile。
创建应用密钥,并复制创建成功的密钥,具体操作,请参见创建应用密钥。
该密钥不是AppSecretId。单击复制,保存应用密钥(即secretKey)。
步骤五:安装PAI组件
登录容器服务管理控制台。
在控制台左侧导航栏,单击集群列表,然后单击目标集群名称或者目标集群右侧操作列下的详情。
在集群管理页左侧导航栏,选择 。
在云原生AI套件页面,单击一键部署,然后在部署页面,按需选中相应的组件。
控制台配置说明、组件说明以及不同集群类型的组件支持情况说明如下。
控制台配置
组件配置
集群支持情况
配置项
配置说明
组件名称及说明
命名空间
ACK托管集群Pro版
ACK Serverless集群Pro版
ACK Edge集群Pro版
弹性
是否开启弹性控制器功能。更多信息,请参见基于Kubernetes部署运行模型训练作业、容器化弹性推理。
ack-alibaba-cloud-metrics-adapter,弹性伸缩组件。
kube-system
加速
是否开启Fluid数据加速功能。更多信息,请参见弹性数据集。
ack-fluid,数据缓存加速组件。
fluid-system
调度
是否开启调度组件(批量任务调度、GPU共享、GPU拓扑感知、NPU调度)功能。单击高级配置,可自定义参数配置。
ack-ai-installer,调度组件。
kube-system
是否开启Kube Queue任务队列功能。更多信息,请参见使用任务队列ack-kube-queue管理AI/ML工作负载。
ack-kube-queue,扩展的Kubernetes任务队列调度组件。
kube-queue
交互方式
Arena:如需使用命令行工具Arena(需要单独安装配置Arena客户端),则必须在此勾选Arena。安装后,您可以使用Arena命令行工具集成的Kubeflow的多种训练Operator。单击高级配置,可自定义参数配置。
若同时勾选Kube Queue、控制台、工作流,则默认必选Arena。更多信息,请参见配置Arena客户端。
ack-arena(生态工具),机器学习命令行工具。
kube-system
控制台:部署轻量化人工智能平台 PAI平台。单击高级配置,可自定义参数配置。
重要部署轻量化人工智能平台 PAI平台,需要先创建docker-registry-secret,请参见PAI轻量化控制台部署指南。
ack-pai,轻量化人工智能平台 PAI平台。推荐使用。
安装此组件后您可以直接使用PAI平台提供的深度优化的算法与引擎,以及沉淀的最佳实践,此外DSW、DLC、EAS等服务也为AI模型开发、训练和推理带来了更好的弹性和效率,极大地优化训练与推理的效果,降低了您AI开发的门槛。
pai-system
控制台:AI套件控制台。
说明阿里云提供的AI控制台(包括开发控制台、运维控制台)于2025年01月22日起以白名单功能的形式开放。如果您在白名单开放前已部署开发控制台或运维控制台,您的使用将不会受到影响。未加入白名单的用户,可以从开源社区安装配置AI套件控制台。关于开源配置的详细操作,请参见开源AI控制台。
ack-ai-dashboard(生态工具),可视化运维控制台。
kube-ai
ack-ai-dev-console(生态工具),深度学习开发控制台。
kube-ai
控制台数据存储
选择交互方式为控制台后,需选择控制台数据存储方式为集群内置MySQL或阿里云RDS。关于配置详情,请参见安装配置云原生AI控制台。
ack-mysql,MySQL数据库组件。
kube-ai
工作流
选中Kubeflow Pipelines后,您可以选择工作流数据存储方式为集群内置MinIO或阿里云OSS。关于配置详情,请参见安装配置工作流。
ack-ai-pipeline(生态工具),构建端到端的机器学习工作流平台。
kube-ai
监控
是否安装监控组件。更多信息,请参见使用云原生AI监控大盘。
ack-arena-exporter,集群监控组件。
kube-ai
在生态工具区域,单击PAI轻量化控制台后的高级配置。
在参数配置配置面板,配置以下参数,并单击确定。
clientId和secretKey替换为步骤四中查询到的应用ID和应用密钥。
accountId:替换为您的阿里云账号ID。
paiSuperAdmin:替换为您的阿里云账号名称(取邮箱@符号之前的字符串)。
重要不强制要求使用阿里云账号,通常也可以使用一个RAM用户(子账号)作为超级管理员。
注意:一旦将该RAM用户(子账号)作为超级管理员,该超级管理员不支持提交训练任务和创建交互式建模实例。
在生态工具区域,选中控制台和PAI轻量化控制台,单击部署云原生AI套件。
步骤六:PAI轻量化功能验证
使用阿里云账号登录PAI轻量化控制台。
创建资源管理配额(quota)。
在左侧导航栏,单击工作空间管理。
在资源配额管理页签,单击新建资源配额。
在新建资源配额页面,根据界面提示配置参数,并单击提交。
创建工作空间。
在左侧导航栏,单击工作空间管理。
在工作空间管理页签,单击新建工作空间。
在新建工作空间对话框,根据界面提示配置参数,并单击确定。
创建数据集。
您可以准备一个与ACK在同一个VPC下的NAS文件系统,数据集支持NFS和容器持久存储卷两种类型。
创建镜像拉取密钥。
使用超级管理员账号根据控制台上资源配额对应的ID(即资源配额管理页签中资源配额ID列的值,例如:quotaxxxx)创建pai-image-secret。如果其他资源配额也需要该ACR的镜像拉取权限,则需要同理按照该方式创建对应资源配额ID的密钥。
kubectl create secret docker-registry pai-image-secret --namespace={这里填写QuotaID} --docker-server=***.cn-hangzhou.cr.aliyuncs.com --docker-username=****** --docker-password=******
下载DLC客户端工具至本地,并进行用户认证,具体操作,请参见准备工作。
使用以下命令将镜像从ACR同步到PAI。
dlc sync-image --image_tag {镜像的repository:tag,如pytorch:py3.6-torch1.8-cuda11.1-sshd-ubuntu18.04}
提交DLC任务或创建DSW实例。
提交DLC任务。
在左侧导航栏,单击任务列表。
在任务列表页签,单击新建任务。
在新建任务页面,根据界面提示配置参数,并单击提交。
其中:所属工作空间、数据集配置、节点镜像配置为上述步骤中创建的内容。
创建DSW实例
在左侧导航栏,单击交互式建模(DSW)。
单击创建实例。
在创建实例页面,根据界面提示配置参数,并单击创建。
其中:实例所属工作空间、镜像来源、数据集配置为上述步骤中创建的内容。