全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:安装AI套件

更新时间:Aug 01, 2024

云原生AI套件支持安装在ACK Pro版集群、ACK Serverless集群Pro版ACK Edge集群Pro版,且集群版本为1.18及以上。本文介绍如何安装云原生AI套件,以及如何安装配置云原生AI运维控制台和开发控制台。

前提条件

部署云原生AI套件

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > 云原生AI套件

  3. 云原生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平台。单击高级配置,可自定义参数配置。

    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

    对

    错

    错

  4. 单击页面下方的部署云原生AI套件,开始检查环境和依赖项,检查通过后,自动部署选择的组件。

    组件安装成功后,在组件列表页面:

    • 您可以看到当前集群中已经安装的组件名称、版本等信息,并能对组件进行部署卸载操作。

    • 如果已安装的组件有新版本的话,还可以对组件进行升级操作。

    • 如果您已安装云原生AI运维控制台组件(ack-ai-dashboard)和云原生AI开发控制台组件(ack-ai-dev-console)后,可以在云原生AI套件页面左上方看到运维控制台开发控制台,单击相应控制台可直接进行访问。控制台

  5. 安装完成后,您可以在云原生AI套件页面左上方看到运维控制台开发控制台,单击相应控制台可直接进行访问。

安装配置云原生AI控制台

  1. 在云原生AI套件部署页面的交互方式区域,选中控制台,弹出提示对话框。

    • 如果授权状态为已授权,请执行步骤3

    • 如果授权状态为红色的未授权,且确定按钮为不可用状态,请执行步骤2

      提示框

  2. 创建自定义权限策略并对RAM角色进行授权。

    1. 创建自定义权限策略。

      1. 登录RAM控制台,在左侧导航栏选择权限管理>权限策略

      2. 单击创建权限策略

      3. 单击脚本编辑页签。将以下策略添加至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"
      4. 在页面顶端的名称文本框中输入自定义权限策略的名称,格式需设置为k8sWorkerRolePolicy-{ClusterID},单击确定

    2. 对目标容器集群的RAM角色授权。

      1. 登录RAM控制台,在左侧导航栏选择身份管理>角色

      2. 在文本框中输入目标角色名称,格式为KubernetesWorkerRole-{ClusterID}。单击目标角色名称后操作列的新增授权

      3. 选择权限区域,单击自定义策略

      4. 在文本框中输入之前创建的自定义权限策略名称,格式为k8sWorkerRolePolicy-{ClusterID}

      5. 单击确定

    3. 返回容器服务ACK控制台的提示对话框,单击授权检测。如果授权成功,授权状态显示为已授权,且确定按钮可用。请执行步骤3

      已授权

  3. 选择运维控制台访问方式开发控制台访问方式,然后单击确定

    您可以选择使用私网IP私网域名公网域名访问服务。

    • 生产环境中,请使用私网IP或者私网域名的方式。

    • 公网域名方式建议仅作为测试使用。如需使用公网域名,请在本地Host文件中将需要访问的公网域名和集群的Nginx Ingress SLB的公网IP绑定。

    说明
    • 选择私网网络类型访问时,在提示对话框中选中私网IP

    • 使用私网域名、私网IP访问控制台的步骤,请参见访问AI运维控制台

  4. 选择控制台数据存储方式。

    选中控制台后,在部署页面交互方式下方会出现控制台数据存储,您可以选择数据存储的方式。

    集群内置MySQL

    如果没有选择阿里云RDS的存储模式,则默认使用集群内置MySQL。因为稳定性和SLA保障问题,该方式建议仅作为测试使用,不推荐作为生产环境使用,且该方式会在组件每次安装的时候创建一块产生额外费用的新的云盘,这些云盘资源需要用户自行控制释放。

    重要

    如果集群故障或者存储丢失,可能会导致数据丢失。

    云原生AI套件会使用云盘的StorageClass来创建一个backend为云盘的PVC作为MySQL的持久化存储,ACK集群会创建一块新的大小为120 GB的云盘并进行挂载,该云盘会产生一定的费用,且该云盘后续的生命周期管理不属于ACK,请注意进行云盘的资源管理,如果不再需要请及时删除。关于释放云盘的操作,请参见释放云盘

    阿里云RDS

    说明
    • 使用RDS时若出现连接异常的问题,请参见解决无法连接实例问题

    • 如果您想要修改数据存储方式,请卸载云原生AI套件,再重新进行安装。如果您的集群中有名称为kubeai-rds的Secret,请通过kubectl删除。

    1. 单独购买RDS实例并创建数据库和账号,操作步骤请参见云数据库RDS快速入门,RDS的计费信息请参见计费概览

    2. 单击页面下方的部署云原生AI套件,安装云原生AI套件。

    3. 单击目标集群的名称,在左侧导航栏选择配置管理>保密字典

    4. 在页面上方的命名空间列表中,选择kube-ai

    5. 在页面右上角,单击使用YAML创建资源

    6. 输入以下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

  1. 安装云原生AI套件中的Kubeflow Pipelines之前,在容器服务管理控制台左侧单击目标集群的名称,在左侧导航栏选择配置管理>保密字典

  2. 如果集群中不存在kube-ai这个命名空间,则需要提前创建这个命名空间。

  3. 在页面上方的命名空间列表中,选择kube-ai

  4. 在页面右上角,单击使用YAML创建资源

  5. 输入以下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接入点名称,示例中以北京为例,更多接入点信息请参见访问域名和数据中心

    • ACCESS_KEY_ID

    • ACCESS_KEY_SECRET

    填写账号的AccessKey(AK)信息。获取AK的方式,请参见创建AccessKey

    重要

    为保证数据安全,推荐您使用RAM用户的AK。使用RAM用户登录之前,需要为RAM用户配置AliyunOSSFullAccess的权限。

  6. 创建Secret后,耐心等待您的OSS管理控制台中自动生成一个名称为mlpipeline-<clusterid>的Bucket,此时说明您已成功配置阿里云OSS工作流数据存储方式。OSS的计费请参见计费概述

    成功示例如下图所示。

    image

  7. 最后再安装云原生AI套件中的Kubeflow Pipelines组件即可。