安装 Alauda AI

Alauda AI 现在提供了更灵活的部署选项。从 Alauda AI 1.4 开始,Serverless 能力变为可选功能,如果不需要,可以采用更简化的安装方式。

首先,你需要部署 Alauda AI Operator。这是所有 Alauda AI 产品的核心引擎。默认情况下,它使用 KServe Raw Deployment 模式作为推理后端,尤其推荐用于资源密集型的生成式工作负载。该模式提供了一种直接的模型部署方式,并通过利用基础的 Kubernetes 功能,提供了强大且可自定义的部署能力。

如果你的使用场景需要 Serverless 功能,该功能支持诸如按需缩放至零等高级特性以优化成本,你可以选择安装 Alauda AI Model Serving Operator。该 operator 不属于默认安装内容,可以在任何时候添加,以启用 Serverless 功能。

INFO

Recommended deployment option: 对于生成式推理工作负载,推荐使用 Raw Kubernetes Deployment 方案,因为它可以对资源分配和扩缩容提供最大的控制能力。

下载

Operator Components

  • Alauda AI Operator

    Alauda AI Operator 是驱动 Alauda AI 产品的主引擎。它专注于两个核心功能:模型管理和推理服务,并提供了一个可轻松扩展的灵活框架。

    下载包:aml-operator.xxx.tgz

  • Alauda AI Model Serving Operator

    Alauda AI Model Serving Operator 提供 serverless 模型推理。

    下载包:kserveless-operator.xxx.tgz

INFO

你可以从 Customer Portal 网站上的 Marketplace 下载名为 'Alauda AI' 和 'Alauda AI Model Serving' 的应用。

上传

我们需要将 Alauda AIAlauda AI Model Serving 都上传到将要使用 Alauda AI 的集群中。

下载 violet 工具

首先,如果机器上没有 violet 工具,我们需要先下载它。

登录 Web Console 并切换到 Administrator 视图:

  1. 单击 Marketplace / Upload Packages
  2. 单击 Download Packaging and Listing Tool
  3. Execution Environment 下找到合适的 OS / CPU architecture。
  4. 单击 Download 下载 violet 工具。
  5. 运行 chmod +x ${PATH_TO_THE_VIOLET_TOOL} 使该工具可执行。

上传软件包

请先将以下脚本保存为 uploading-ai-cluster-packages.sh,然后阅读下面的注释,更新该脚本中的环境变量配置。

uploading-ai-cluster-packages.sh
#!/usr/bin/env bash
export PLATFORM_ADDRESS=https://platform-address  
export PLATFORM_ADMIN_USER=<admin>
export PLATFORM_ADMIN_PASSWORD=<admin-password>
export CLUSTER=<cluster-name>

export AI_CLUSTER_OPERATOR_NAME=<path-to-aml-operator-tarball>
export KSERVELESS_OPERATOR_PKG_NAME=<path-to-kserveless-operator-tarball>

VIOLET_EXTRA_ARGS=()
IS_EXTERNAL_REGISTRY=

# If the image registry type of destination cluster is not platform built-in (external private or public repository).
# Additional configuration is required (uncomment following line):
# IS_EXTERNAL_REGISTRY=true
if [[ "${IS_EXTERNAL_REGISTRY}" == "true" ]]; then
    REGISTRY_ADDRESS=<external-registry-url>
    REGISTRY_USERNAME=<registry-username>
    REGISTRY_PASSWORD=<registry-password>

    VIOLET_EXTRA_ARGS+=(
        --dst-repo "${REGISTRY_ADDRESS}"
        --username "${REGISTRY_USERNAME}"
        --password "${REGISTRY_PASSWORD}"
    )
fi

# Push **Alauda AI Cluster** operator package to destination cluster
violet push \
    ${AI_CLUSTER_OPERATOR_NAME} \
    --platform-address=${PLATFORM_ADDRESS} \
    --platform-username=${PLATFORM_ADMIN_USER} \
    --platform-password=${PLATFORM_ADMIN_PASSWORD} \
    --clusters=${CLUSTER} \
    ${VIOLET_EXTRA_ARGS[@]}

# Push **KServeless** operator package to destination cluster
violet push \
    ${KSERVELESS_OPERATOR_PKG_NAME} \
    --platform-address=${PLATFORM_ADDRESS} \
    --platform-username=${PLATFORM_ADMIN_USER} \
    --platform-password=${PLATFORM_ADMIN_PASSWORD} \
    --clusters=${CLUSTER} \
    ${VIOLET_EXTRA_ARGS[@]}
  1. ${PLATFORM_ADDRESS} 是你的 ACP 平台地址。
  2. ${PLATFORM_ADMIN_USER} 是 ACP 平台管理员的用户名。
  3. ${PLATFORM_ADMIN_PASSWORD} 是 ACP 平台管理员的密码。
  4. ${CLUSTER} 是要将 Alauda AI 组件安装到的集群名称。
  5. ${AI_CLUSTER_OPERATOR_NAME} 是 Alauda AI Cluster Operator 软件包 tarball 的路径。
  6. ${KSERVELESS_OPERATOR_PKG_NAME} 是 KServeless Operator 软件包 tarball 的路径。
  7. ${REGISTRY_ADDRESS} 是外部 registry 的地址。
  8. ${REGISTRY_USERNAME} 是外部 registry 的用户名。
  9. ${REGISTRY_PASSWORD} 是外部 registry 的密码。

配置完成后,执行 bash ./uploading-ai-cluster-packages.sh 脚本文件,将 Alauda AIAlauda AI Model Serving operator 都上传。

安装 Alauda AI Operator

操作步骤

Administrator 视图中:

  1. 单击 Marketplace / OperatorHub

  2. 在控制台顶部的 Cluster 下拉列表中,选择要安装 Alauda AI 的目标集群。

  3. 选择 Alauda AI,然后单击 Install

    Install Alauda AI 窗口将弹出。

  4. 然后在 Install Alauda AI 窗口中进行以下设置。

  5. 保持 Channel 不变。

  6. 检查 Version 是否与要安装的 Alauda AI 版本匹配。

  7. 保持 Installation Location 不变,默认应为 aml-operator

  8. Upgrade Strategy 选择为 Manual

  9. 单击 Install

验证

确认 Alauda AI 卡片显示以下状态之一:

  • Installing:安装正在进行中;请等待其变为 Installed
  • Installed:安装已完成。

创建 Alauda AI 实例

安装好 Alauda AI Operator 后,你就可以创建一个 Alauda AI 实例。

操作步骤

Administrator 视图中:

  1. 单击 Marketplace / OperatorHub

  2. 在控制台顶部的 Cluster 下拉列表中,选择要安装 Alauda AI Operator 的目标集群。

  3. 选择 Alauda AI,然后单击 Click

  4. Alauda AI 页面中,单击选项卡中的 All Instances

  5. 单击 Create

    Select Instance Type 窗口将弹出。

  6. Select Instance Type 窗口中找到 AmlCluster 卡片,然后单击 Create

    Create AmlCluster 表单将显示出来。

  7. Name 中保持 default 不变。

  8. 从下拉列表中选择 Deploy Flavor

    1. single-node 适用于非 HA 部署。
    2. ha-cluster 适用于 HA 集群部署(生产环境推荐)。
  9. KServe Mode 设置为 Managed

  10. Domain 字段输入一个有效域名。

    INFO

    该域名由 ingress gateway 用于暴露模型推理服务。 大多数情况下,你会希望使用通配符域名,例如 *.example.com。

    你可以通过更新 Domain Certificate Type 字段来指定以下证书类型:

    • Provided
    • SelfSigned
    • ACPDefaultIngress

    默认情况下,配置会使用 SelfSigned 证书类型来保护到集群的 ingress 流量,证书保存在 Domain Certificate Secret 字段中指定的 knative-serving-cert secret 中。

    如果要使用你自己提供的证书,请将证书 secret 存储在 istio-system namespace 中,然后更新 Domain Certificate Secret 字段的值,并将 Domain Certificate Secret 字段的值改为 Provided

  11. Serverless Configuration 部分,将 Knative Serving Provider 设置为 Operator;其余参数留空。

  12. Gitlab 部分:

    1. Base URL 中填写自建 Gitlab 的 URL。
    2. Admin Token Secret Namespace 中填写 cpaas-system
    3. Admin Token Secret Name 中填写 aml-gitlab-admin-token
  13. 检查上述配置,然后单击 Create

验证

检查名为 defaultAmlCluster 资源的状态字段:

kubectl get amlcluster default

应返回 Ready

NAME      READY   REASON
default   True    Succeeded

至此,Alauda AI 的核心能力已经成功部署。如果你想快速体验该产品,请参阅 Quick Start

启用 Serverless 功能

Serverless 功能是一个可选能力,需要额外部署一个 operator 和一个实例。

1. 安装 Alauda AI Model Serving Operator

前提条件

Serverless 能力依赖 Istio Gateway 进行网络通信。请先按照 documentation 安装 Service Mesh

操作步骤

Administrator 视图中:

  1. 单击 Marketplace / OperatorHub

  2. 在控制台顶部的 Cluster 下拉列表中,选择要安装到的目标集群。

  3. 选择 Alauda AI Model Serving,然后单击 Install

    Install Alauda AI Model Serving 窗口将弹出。

  4. 然后在 Install Alauda AI Model Serving 窗口中进行以下设置。

  5. 保持 Channel 不变。

  6. 检查 Version 是否与要安装的 Alauda AI Model Serving 版本匹配。

  7. 保持 Installation Location 不变,默认应为 kserveless-operator

  8. Upgrade Strategy 选择为 Manual

  9. 单击 Install

验证

确认 Alauda AI Model Serving 卡片显示以下状态之一:

  • Installing:安装正在进行中;请等待其变为 Installed
  • Installed:安装已完成。

2. 创建 Alauda AI Model Serving 实例

安装好 Alauda AI Model Serving Operator 后,你就可以创建一个实例。可以通过两种方式进行:

自动创建(推荐)

你可以通过编辑 AmlCluster 的参数,让实例由它自动创建并管理。

Administrator 视图中:

  1. 单击 Marketplace / OperatorHub

  2. 在控制台顶部的 Cluster 下拉列表中,选择你之前安装 AmlCluster 的目标集群。

  3. 选择 Alauda AI,然后单击 Click

  4. Alauda AI 页面中,单击选项卡中的 All Instances

  5. 单击名为 default 的实例。

  6. 找到 Actions 下拉列表并选择 update。

    update default 表单将显示出来。

  7. Serverless Configuration 部分:

    1. Knative Serving Provider 设置为 Legacy
    2. BuiltIn Knative Serving 设置为 Managed
  8. 保持其余参数不变。单击 Update

手动创建与集成

你可以手动创建 KnativeServing (knativeservings.components.aml.dev) 实例。

Administrator 视图中:

  1. 单击 Marketplace / OperatorHub

  2. 在控制台顶部的 Cluster 下拉列表中,选择要安装到的目标集群。

  3. 选择 Alauda AI Model Serving,然后单击 Click

  4. Alauda AI Model Serving 页面中,单击选项卡中的 All Instances

  5. 单击 Create

    Select Instance Type 窗口将弹出。

  6. Select Instance Type 窗口中找到 KnativeServing 卡片,然后单击 Create

    Create KnativeServing 表单将显示出来。

  7. Name 中保持 default-knative-serving 不变。

  8. Knative Serving Namespace 中保持 knative-serving 不变。

  9. Ingress Gateway 部分,按如下方式配置:

    1. Ingress Gateway Istio Revision 设置为与你的 Istio 版本相对应的值(例如 1-22)。
    2. Domain 字段设置一个有效域名。
    3. 设置合适的 Domain Certificate Type
    INFO

    有关配置域名和证书类型的详细信息,请参阅 relevant section

  10. Values 部分,按如下方式配置:

    1. 从下拉列表中选择 Deploy Flavor

      1. single-node 适用于非 HA 部署。
      2. ha-cluster 适用于 HA 集群部署(生产环境推荐)。
    2. Global Registry Address 设置为与集群匹配的值

      你可以按照以下步骤找到集群的私有 registry 地址:

      1. 在 Web Console 中,进入 Administrator / Clusters。
      2. 选择你的目标 cluster
      3. Overview 选项卡中,在 Basic Info 部分找到 Private Registry address 的值。

配置 AmlCluster 实例以与 KnativeServing 实例集成。

AmlCluster 实例更新窗口中,你需要在 Serverless Configuration 部分填写所需参数。

INFO

初始安装后,你会发现只有 Knative Serving Provider 被设置为 Operator。此时你需要为以下参数提供值:

  • APIVersion: components.aml.dev/v1alpha1
  • Kind: KnativeServing
  • Name: default-knative-serving
  • Namespace 保持空白。

安装后替换 GitLab Service

如果你想在安装后替换 GitLab Service,请按照以下步骤操作:

  1. 重新配置 GitLab Service 请参考 Pre-installation Configuration,并重新执行其中的步骤。

  2. 更新 Alauda AI 实例

    • 在 Administrator 视图中,进入 Marketplace > OperatorHub
    • Cluster 下拉列表中选择目标集群
    • 选择 Alauda AI,然后单击 All Instances 选项卡
    • 找到 'default' 实例并单击 Update
  3. 修改 GitLab 配置Update default 表单中:

    • 找到 GitLab 部分
    • 输入:
      • Base URL:你新的 GitLab 实例的 URL
      • Admin Token Secret Namespacecpaas-system
      • Admin Token Secret Nameaml-gitlab-admin-token
  4. 重启组件 重启 kubeflow namespace 中的 aml-controller deployment。

  5. 刷新平台数据 在 Alauda AI 管理视图中,重新管理所有 namespace。

    • 在 Alauda AI 视图中,从 Business View 进入 Admin 视图
    • Namespace Management 页面中,删除所有现有的已管理 namespace
    • 使用 "Managed Namespace" 添加需要集成 Alauda AI 的 namespace
      INFO

      原始模型不会自动迁移。 若要继续使用这些模型,请:

      • 在新的 GitLab 中重新创建并重新上传,或者
      • 手动将模型文件转移到新仓库

FAQ

  1. 为什么 aml-api-deploy 在安装或升级后无法更新数据库?

有一个已知问题:aml-api-deploy 组件在安装后可能无法正确初始化数据库,在升级过程中也可能无法迁移数据库 schema。这会影响 dataset 预览和 fine-tuning 等高级功能。

要修复此问题,请进入 kubeflow namespace 中 aml-api-deploy Deployment 的 Pod:

kubectl -n kubeflow exec -it deploy/aml-api-deploy -- /bin/bash

然后在容器中运行以下命令:

cd /work/aml_api
alembic revision --autogenerate -m "initdb"
alembic upgrade head