本文为您介绍如何在ACK容器服务中部署PAI轻量化控制台,如何使用PAI轻量化功能,请联系您的商务经理。
使用限制
仅支持阿里云ACK容器服务。
步骤一:创建集群
登录容器服务管理控制台。
在集群列表,单击创建集群。
在ACK托管版页签的集群配置配置向导页面,配置以下参数,并单击下一步:节点池配置。
其中关键参数配置如下,其他参数配置,详情请参见创建Kubernetes托管版集群。
集群规格:Pro版。
付费类型:选择按量付费。
Kubernetes版本:选择1.22.15-aliyun.1。
专有网络:选择专有网络VPC,后续创建的RDS、ACR、NAS需要保证与ACK在同一个VPC下。
网络插件:选择Flannel。
节点IP数量:建议配置128个及以上。
API Server访问:选中使用EIP暴露API Server。
在节点池配置配置向导页面,配置以下关键参数(其他参数可以使用默认值),并单击下一步:组件配置。
容器运行时:选择docker 19.03.15,不支持containerd。
管控ECS要求
实例规格:每台实例规格建议大于等于16核32 GiB。
系统盘:如果您希望使用内置MySQL,而不希望额外购买RDS作为数据库存储,则必须选择ESSD云盘(不是高效云盘,某些特定机型才支持,例如内存型ECS)。因ES存储日志占用较大,系统盘大小建议配置为500 GiB。
计算ECS要求
挂载数据盘:建议增加一块数据盘,因运行时容器可能占用较大空间,建议数据盘大小配置为500 GiB。
在组件配置配置向导页面,配置参数,并单击下一步:确认配置。
以下参数必须按照要求配置,其他参数可以使用默认值。
Ingress:必须选择Nginx Ingress,负载均衡类型选择公网,否则将无法正常访问PAI控制台。
容器监控:必须选中使用阿里云可观测监控Prometheus版,否则将无法正常查看PAI的资源监控信息。
在确认配置配置向导页面,确认配置参数,选中服务协议,单击创建集群。
等待大约10分钟,集群即可创建成功。
步骤二:创建RDS
如果您打算使用内置MySQL,可以忽略该步骤。
如果您采用阿里云RDS,需要按照以下操作步骤,完成准备工作。
创建RDS实例,具体操作,请参见创建RDS MySQL实例。
创建数据库账号和6个数据库,包括dlc、notebook、eas、pai_console、pai_user、paiflow,具体操作,请参见创建数据库和账号。
根据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版
弹性
ack-alibaba-cloud-metrics-adapter,弹性伸缩组件。
kube-system
加速
是否开启Fluid数据加速功能。更多信息,请参见数据加速Fluid概述。
ack-fluid,数据缓存加速组件。
fluid-system
调度
是否开启调度组件(批量任务调度、GPU共享、GPU拓扑感知、NPU调度)功能。单击高级配置,可自定义参数配置。
ack-ai-installer,调度组件。
kube-system
是否开启Kube Queue任务队列功能。更多信息,请参见使用任务队列ack-kube-queue。
ack-kube-queue,Kube Queue任务队列。
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-system
控制台:部署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)。
单击创建实例。
在创建实例页面,根据界面提示配置参数,并单击创建。
其中:实例所属工作空间、镜像来源、数据集配置为上述步骤中创建的内容。