云原生AI套件支持安装在ACK Pro版集群、ACK Serverless集群Pro版、ACK Edge集群Pro版,且集群版本为1.18及以上。本文介绍如何安装云原生AI套件,以及如何安装配置云原生AI运维控制台和开发控制台。
前提条件
已创建ACK Pro版集群、ACK Serverless集群Pro版、ACK Edge集群Pro版,且集群版本为1.18及以上。具体操作,请参见创建ACK Pro版集群、创建ACK Serverless Pro集群、创建ACK Edge集群Pro版。
如需安装配置云原生AI运维控制台,需在创建集群的组件配置页面,选中监控插件和日志服务;或在已创建集群的运维管理页面,安装Prometheus监控和Logtail组件。具体操作,请参见使用阿里云Prometheus监控和通过DaemonSet采集Kubernetes容器文本日志。
视频介绍
部署云原生AI套件
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在云原生AI套件页面,单击一键部署,然后在部署页面,按需选中相应的组件。
控制台配置说明、组件说明以及不同集群类型的组件支持情况说明如下。
控制台配置
组件配置
集群支持情况
配置项
配置说明
组件名称及说明
命名空间
ACK集群Pro版
ACK Serverless集群Pro版
ACK Edge集群Pro版
弹性
是否开启弹性控制器功能。更多信息,请参见基于Kubernetes部署运行模型训练作业、容器化弹性推理。
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,扩展的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控制台。
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
单击页面下方的部署云原生AI套件,开始检查环境和依赖项,检查通过后,自动部署选择的组件。
组件安装成功后,在组件列表页面:
您可以看到当前集群中已经安装的组件名称、版本等信息,并能对组件进行部署和卸载操作。
如果已安装的组件有新版本的话,还可以对组件进行升级操作。
如果您已安装云原生AI运维控制台组件(ack-ai-dashboard)和云原生AI开发控制台组件(ack-ai-dev-console)后,可以在云原生AI套件页面左上方看到运维控制台和开发控制台,单击相应控制台可直接进行访问。
如果您已安装PAI轻量化控制台组件(ack-pai)后,可以在云原生AI套件页面左上方看到PAI轻量化控制台,单击相应控制台可直接进行访问。
安装完成后,您可以在云原生AI套件页面左上方看到运维控制台和开发控制台,单击相应控制台可直接进行访问。
安装配置云原生AI控制台
在云原生AI套件部署页面的交互方式区域,选中控制台,弹出提示对话框。
创建自定义权限策略并对RAM角色进行授权。
创建自定义权限策略。
登录RAM控制台,在左侧导航栏选择权限管理>权限策略。
单击创建权限策略。
单击脚本编辑页签。将以下策略添加至
Action
字段中,然后单击继续编辑基本信息。"log:GetProject", "log:GetLogStore", "log:GetConfig", "log:GetMachineGroup", "log:GetAppliedMachineGroups", "log:GetAppliedConfigs", "log:GetIndex", "log:GetSavedSearch", "log:GetDashboard", "log:GetJob", "ecs:DescribeInstances", "ecs:DescribeSpotPriceHistory", "ecs:DescribePrice", "eci:DescribeContainerGroups", "eci:DescribeContainerGroupPrice", "log:GetLogStoreLogs", "ims:CreateApplication", "ims:UpdateApplication", "ims:GetApplication", "ims:ListApplications", "ims:DeleteApplication", "ims:CreateAppSecret", "ims:GetAppSecret", "ims:ListAppSecretIds", "ims:ListUsers"
在页面顶端的名称文本框中输入自定义权限策略的名称,格式需设置为
k8sWorkerRolePolicy-{ClusterID}
,单击确定。
对目标容器集群的RAM角色授权。
登录RAM控制台,在左侧导航栏选择身份管理>角色。
在文本框中输入目标角色名称,格式为
KubernetesWorkerRole-{ClusterID}
。单击目标角色名称后操作列的新增授权。在选择权限区域,单击自定义策略。
在文本框中输入之前创建的自定义权限策略名称,格式为
k8sWorkerRolePolicy-{ClusterID}
。单击确定。
返回容器服务ACK控制台的提示对话框,单击授权检测。如果授权成功,授权状态显示为已授权,且确定按钮可用。请执行步骤3。
选择运维控制台访问方式和开发控制台访问方式,然后单击确定。
您可以选择使用私网IP、私网域名或公网域名访问服务。
生产环境中,请使用私网IP或者私网域名的方式。
公网域名方式建议仅作为测试使用。如需使用公网域名,请在本地Host文件中将需要访问的公网域名和集群的Nginx Ingress SLB的公网IP绑定。
说明选择私网网络类型访问时,在提示对话框中选中私网IP。
使用私网域名、私网IP访问控制台的步骤,请参见访问AI运维控制台。
选择控制台数据存储方式。
选中控制台后,在部署页面交互方式下方会出现控制台数据存储,您可以选择数据存储的方式。
集群内置MySQL
如果没有选择阿里云RDS的存储模式,则默认使用集群内置MySQL。因为稳定性和SLA保障问题,该方式建议仅作为测试使用,不推荐作为生产环境使用,且该方式会在组件每次安装的时候创建一块产生额外费用的新的云盘,这些云盘资源需要用户自行控制释放。
重要如果集群故障或者存储丢失,可能会导致数据丢失。
云原生AI套件会使用云盘的StorageClass来创建一个backend为云盘的PVC作为MySQL的持久化存储,ACK集群会创建一块新的大小为120 GB的云盘并进行挂载,该云盘会产生一定的费用,且该云盘后续的生命周期管理不属于ACK,请注意进行云盘的资源管理,如果不再需要请及时删除。关于释放云盘的操作,请参见释放云盘。
阿里云RDS
说明使用RDS时若出现连接异常的问题,请参见解决无法连接实例问题。
如果您想要修改数据存储方式,请卸载云原生AI套件,再重新进行安装。如果您的集群中有名称为
kubeai-rds
的Secret,请通过kubectl删除。
单独购买RDS实例并创建数据库和账号,操作步骤请参见云数据库RDS快速入门,RDS的计费信息请参见计费概览。
单击页面下方的部署云原生AI套件,安装云原生AI套件。
单击目标集群的名称,在左侧导航栏选择配置管理>保密字典。
在页面上方的命名空间列表中,选择
kube-ai
。在页面右上角,单击使用YAML创建资源。
输入以下YAML示例模板,创建名为
kubeai-rds
的Secret。apiVersion: v1 kind: Secret metadata: name: kubeai-rds namespace: kube-ai type: Opaque stringData: MYSQL_HOST: "Your RDS URL" MYSQL_DB_NAME: "Database name" MYSQL_USER: "Database username" MYSQL_PASSWORD: "Database password"
参数
说明
name
Secret名称。
namespace
集群命名空间的名称。
MYSQL_HOST
MYSQL_DB_NAME
MYSQL_USER
MYSQL_PASSWORD
RDS MySQL的参数配置,请参见快速创建RDS MySQL实例和创建数据库和账号。
安装配置工作流
当工作流选中Kubeflow Pipelines后,您需要选择工作流数据存储方式。
集群内置MinIO
如果没有选择阿里云OSS的存储模式,则默认使用集群内置MinIO。因为稳定性和SLA保障问题,该方式建议仅作为测试使用,不推荐作为生产环境使用,且该方式会在组件每次安装的时候创建一块产生额外费用的新的云盘,这些云盘资源需要用户自行控制释放。
如果集群故障或者存储丢失,可能会导致数据丢失。
云原生AI套件会使用云盘的StorageClass来创建一个backend为云盘的PVC作为MinIO的持久化存储,ACK集群会创建一块新的大小为20 GB的云盘并进行挂载,该云盘会产生一定的费用且该云盘后续的生命周期管理不属于ACK,请注意进行云盘的资源管理,如果不再需要请及时删除。关于释放云盘的操作,请参见释放云盘。
阿里云OSS
如果集群中不存在kube-ai这个命名空间,则需要在集群中提前创建这个命名空间。
kubectl create ns kube-ai
安装云原生AI套件中的Kubeflow Pipelines之前,在容器服务管理控制台左侧单击目标集群的名称,在左侧导航栏选择配置管理>保密字典。
在控制台页面上方的命名空间列表中,选择kube-ai。
在页面右上角,单击使用YAML创建资源。
输入以下YAML示例模板,点击创建,集群会自动执行部署该YAML文件,并生成名为
kubeai-oss
的Secret。apiVersion: v1 kind: Secret metadata: name: kubeai-oss namespace: kube-ai type: Opaque stringData: ENDPOINT: "https://oss-cn-beijing.aliyuncs.com" ACCESS_KEY_ID: "****" ACCESS_KEY_SECRET: "****"
参数
说明
name
Secret名称。
namespace
集群命名空间名称。
说明namespace:kube-ai在您部署云原生AI套件时已自动创建,无需您再单独执行创建操作。
ENDPOINT
OSS接入点名称,示例中以北京为例,更多接入点信息请参见OSS地域和访问域名。
ACCESS_KEY_ID
ACCESS_KEY_SECRET
填写账号的AccessKey(AK)信息。获取AK的方式,请参见创建AccessKey。
重要为保证数据安全,推荐您使用RAM用户的AK。使用RAM用户登录之前,需要为RAM用户配置
AliyunOSSFullAccess
的权限。创建Secret后,耐心等待您的OSS管理控制台中自动生成一个名称为
mlpipeline-<clusterid>
的Bucket,此时说明您已成功配置阿里云OSS工作流数据存储方式。OSS的计费请参见产品计费。成功示例如下图所示。
最后再安装云原生AI套件中的Kubeflow Pipelines组件即可。