安装 Alauda AI

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

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

如果你的用例需要 Knative 功能,例如启用 按需缩放至零 以优化成本,你可以选择安装 Knative Operator。该 operator 不包含在默认安装中,可在任何时候添加,以启用 Knative 功能。

INFO

推荐的部署选项:对于生成式推理工作负载,推荐使用 Standard 方式(此前称为 RawKubernetes Deployment),因为它能对资源分配和伸缩提供最强控制。

下载

Operator 组件

  • Alauda AI Operator

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

    下载包:aml-operator.xxx.tgz

  • Knative Operator

    Knative Operator 提供无 serverless 模型推理。

    下载包:knative-operator.ALL.v1.x.x-yymmdd.tgz

INFO

你可以从 Customer Portal 网站上的 Marketplace 下载名为 “Alauda AI” 和 “Knative Operator” 的应用。

上传

我们需要将 Alauda AIKnative Operator 都上传到将要使用 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 KNATIVE_OPERATOR_PKG_NAME=<path-to-knative-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 **Knative Operator** package to destination cluster
violet push \
    ${KNATIVE_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. ${KNATIVE_OPERATOR_PKG_NAME} 是 Knative Operator 软件包 tarball 的路径。
  7. ${REGISTRY_ADDRESS} 是外部 registry 的地址。
  8. ${REGISTRY_USERNAME} 是外部 registry 的用户名。
  9. ${REGISTRY_PASSWORD} 是外部 registry 的密码。

配置完成后,执行 bash ./uploading-ai-cluster-packages.sh 来上传 Alauda AIKnative 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:安装完成。

启用 Knative 功能

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

WARNING

如果你计划使用 Knative 功能,必须 先安装 Knative Operator 并创建 Knative Serving 实例,然后再创建 Alauda AI 实例,以确保集群中可用所需的 CRD。

1. 安装 Knative Operator

INFO

Knative Operator 开始,Knative 网络层切换为 Kourier,因此不再需要安装 Istio

操作步骤

Administrator 视图中:

  1. 点击 Marketplace / OperatorHub

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

  3. 搜索并选择 Knative Operator,然后点击 Install

    Install Knative Operator 窗口将弹出。

  4. 然后在 Install Knative Operator 窗口中进行操作。

  5. 保持 Channel 不变。

  6. 检查 Version 是否与要安装的 Knative Operator 版本一致。

  7. 保持 Installation Location 不变。

  8. Upgrade Strategy 设为 Manual

  9. 点击 Install

验证

确认 Knative Operator 磁贴显示以下状态之一:

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

2. 创建 Knative Serving 实例

安装 Knative Operator 后,你需要手动创建 KnativeServing 实例。

操作步骤

  1. 创建 knative-serving 命名空间。

    kubectl create ns knative-serving
  2. Administrator 视图中,导航到 Operators -> Installed Operators

  3. 选择 Knative Operator

  4. Provided APIs 下找到 KnativeServing,然后点击 Create Instance

  5. 切换到 YAML view

  6. 将内容替换为以下 YAML:

  7. 点击 Create

    apiVersion: operator.knative.dev/v1beta1
    kind: KnativeServing
    metadata:
      name: knative-serving
      namespace: knative-serving
    spec:
      # For ACP 4.0, use version 1.18.1
      # For ACP 4.1 and above, use version 1.19.6
      version: "1.18.1"
      config:
        deployment:
          registries-skipping-tag-resolving: kind.local,ko.local,dev.local,private-registry
        domain:
          example.com: ""
        features:
          kubernetes.podspec-affinity: enabled
          kubernetes.podspec-hostipc: enabled
          kubernetes.podspec-hostnetwork: enabled
          kubernetes.podspec-init-containers: enabled
          kubernetes.podspec-nodeselector: enabled
          kubernetes.podspec-persistent-volume-claim: enabled
          kubernetes.podspec-persistent-volume-write: enabled
          kubernetes.podspec-securitycontext: enabled
          kubernetes.podspec-tolerations: enabled
          kubernetes.podspec-volumes-emptydir: enabled
          queueproxy.resource-defaults: enabled
        network:
          domain-template: '{{.Name}}.{{.Namespace}}.{{.Domain}}'
          ingress-class: kourier.ingress.networking.knative.dev
      ingress:
        kourier:
          enabled: true
  1. 对于 ACP 4.0,请将版本保持为 "1.18.1"。对于 ACP 4.1 及以上版本,请将版本改为 "1.19.6"。

  2. private-registry 是你的私有 registry 地址占位符。你可以在 Administrator 视图中点击 Clusters,选择 your cluster,然后在 Basic Info 部分查看 Private Registry 的值。

创建 Alauda AI 实例

安装 Alauda AI Operator(以及可选的 Knative 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 里。

  11. (可选) 如果你想启用 Knative 功能,请在 Serverless Configuration 部分将 Knative Serving Provider 设为 Operator

    INFO

    如果你在前面的步骤中安装了 Knative Operator 以启用 Serverless 功能,请提供以下参数以进行集成:

    • APIVersion: operator.knative.dev/v1beta1
    • Kind: KnativeServing
    • Name: knative-serving
    • Namespace: knative-serving

    如果你不使用 Knative 功能,请将 Knative Serving Provider 保持为 Removed(或留空),其余参数保持为空。

  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 的核心能力已成功部署。如果你想快速体验该产品,请参阅 快速开始

迁移到 Knative Operator

在 1.x 系列产品中,推理服务的 serverless 能力由 Alauda AI Model Serving operator 提供。在 2.x 系列中,该能力由 Knative Operator 提供。本节将指导你将 serverless 能力从旧版 operator 迁移到新版 operator。

1. 移除旧的 Serving 实例

操作步骤

Administrator 视图中:

  1. 点击 Marketplace / OperatorHub
  2. 在控制台顶部的 Cluster 下拉列表中,选择安装了 Alauda AI 的目标集群。
  3. 选择 Alauda AI,然后点击 All Instances 选项卡。
  4. 找到 default 实例并点击 Update
  5. 在更新表单中找到 Serverless Configuration 部分。
  6. BuiltIn Knative Serving 设为 Removed
  7. 点击 Update 应用更改。

2. 安装 Knative Operator 并创建 Serving 实例

从 Marketplace 安装 Knative Operator,并创建 KnativeServing 实例。详细说明请参阅 启用 Knative 功能 部分。

INFO

完成上述步骤后,Knative serving 控制平面的迁移即完成。

  • 如果你是从 Alauda AI 2.0 + Alauda AI Model Serving 组合迁移,那么到此迁移已完全完成。业务服务会在短时间内自动切换其配置。
  • 如果你是从 Alauda AI 1.x + Alauda AI Model Serving 组合迁移,请确保 Alauda AI 同时升级到 2.x 版本。

安装后替换 GitLab 服务

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

  1. 重新配置 GitLab 服务 参阅 预安装配置 并重新执行其中的步骤。

  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 命名空间中的 aml-controller deployment。

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

    • 在 Alauda AI 视图中,从 Business View 切换到 Admin 视图
    • Namespace Management 页面中,删除所有已存在的受管命名空间
    • 使用 "Managed Namespace" 添加需要 Alauda AI 集成的命名空间
      INFO

      原有模型不会自动迁移 继续使用这些模型:

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

常见问题

1. 为 aml-skipper 配置审计输出目录

默认的审计输出路径为宿主机上的 /cpaas/audit。但是,在某些操作系统上(例如 Alauda OS),宿主机的根路径是只读的,无法创建 /cpaas 目录。在这种情况下,用户需要修改审计输出路径。

要修改审计输出路径,请更新 AmlCluster 默认资源,并在 spec.values 下添加 amlSkipper.auditLogHostPath.path 配置。例如:

apiVersion: amlclusters.aml.dev/v1alpha2
kind: AmlCluster
metadata:
  name: default
  ...
spec:
  ...
  values:
    amlSkipper:
      auditLogHostPath:
        path: /var/lib/audit
NOTE

具体路径应与 Alauda Container Platform Log Collector 的采集配置保持一致。