升级 Alauda AI

INFO

1.5 升级到 2.3

安装 Alauda AI 集群组件

请访问 Alauda AI Cluster 了解:

WARNING

请忽略 Creating Alauda AI Instance,因为我们正在从先前已管理的版本升级 Alauda AI

  1. Alauda AIKnative Operator Downloading operator bundle packages(可选)。
  2. Alauda Build of KServe Downloading operator bundle packages。
  3. 将 operator bundle packages Uploading 到目标集群。
  4. 按照下面描述的流程进行升级。

升级前操作

为已停止的 Inference Services 添加注解

从版本 2.3 开始,平台采用 KServe 提供的社区原生停止能力。为确保升级平稳进行,所有当前处于已停止状态的 inference services 在升级前都必须显式添加注解。

WARNING

此步骤在升级前是必需的。若未为已停止的 inference services 添加注解,升级后可能会出现非预期行为。

  1. 列出所有当前已停止的 inference services:

    kubectl get inferenceservices --all-namespaces
  2. 为每个已停止的 inference service 添加以下注解:

    kubectl annotate inferenceservice <name> -n <namespace> serving.kserve.io/stop='true'

    你也可以直接编辑资源,并在 metadata.annotations 下添加该注解:

    apiVersion: serving.kserve.io/v1beta1
    kind: InferenceService
    metadata:
      name: <name>
      annotations:
        serving.kserve.io/stop: 'true'
  3. 对所有命名空间中的所有已停止 inference services 重复此步骤。

升级

以下操作步骤描述了如何将 Alauda AI1.5 升级到 2.3

升级 Alauda AI Essentials

在 global 集群的 Functional Components 选项卡中升级 Alauda AI Essentials

Administrator 视图中,导航到左侧导航栏的 Clusters / Cluster,在右侧图表中找到 global 集群,然后在 Functional Components 选项卡页面上单击 Upgrade 按钮以触发升级。

INFO

所有需要升级的组件,包括 Alauda AI Essentials,都会一起升级,且不能单独升级。

升级完成后,请确认列表中 Alauda AI Essentials 的状态为 Running,版本为 v2.3.x

升级 Alauda AI Operators

升级 operator 的操作步骤几乎相同,唯一不同的是目标组件。

步骤Alauda AI Operator
1. 导航登录 Web Console,然后在 Administrator 视图中进入 Marketplace > OperatorHub
2. 选择选择你的目标 cluster
3. 单击单击 Alauda AI 卡片。
4. 确认在升级提示中单击 Confirm
INFO

一旦新版本被上传并被平台识别,operator 页面顶部就会出现升级提示。

安装 Alauda Build of KServe Operator

从版本 2.3 开始,Alauda Build of KServe 作为一个独立的 operator 插件提供,以提供更专用且更灵活的模型服务能力。在完成核心 AI operator 升级后,你必须安装 KServe operator 以启用模型服务功能。

有关详细的安装和配置步骤,请参阅 Alauda Build of KServe Installation Guide

升级集群插件

INFO

仅当你已部署以下任一集群插件时,才需要执行此步骤:Alauda AI WorkbenchMLflowVolcano。如果你未部署这些插件中的任何一个,则可以跳过此步骤。

有关集群插件的更多信息,请参阅 Alauda Container Platform - Extend

升级集群插件的操作涉及上传新版本软件包,然后从 Web Console 中进行升级。以下插件需要升级:

  • Alauda AI Workbench
  • MLflow
  • Volcano

上传集群插件

将新的集群插件软件包上传到 global 集群。有关如何上传集群插件的详细说明,请参阅 Uploading Cluster Plugins

对你已部署的每个插件重复上传过程。

INFO

上传完成后,请等待大约 10–15 分钟,以便平台同步新版本信息。

验证新版本

导航到 Administrator > Marketplace > Upload Packages,并切换到 Cluster Plugin 选项卡。找到每个已上传的插件,确认显示了新版本。

故障排查

上传后新版本不可见(ACP 4.0.x)

Alauda Container Platform (ACP) 4.0.x 上,即使上传成功,Web Console 也可能无法显示新上传的集群插件版本。这是已知的 ACP 限制;在较新的 ACP 版本中已得到解决。

如果等待同步后新版本仍未出现,可以使用以下变通方法,将目标版本设置到相应的 ModuleInfo 上,并直接触发插件升级。

以下 kubectl 命令必须在 global 集群上运行。

插件(UI / product name)插件标识符
Alauda AI Workbenchworkbench
Volcanovolcano
MLflowmlflow
Kubeflow Training Operatorkftraining
  1. 解析 ModuleInfo 资源名称。将 <Cluster Name> 替换为目标集群名称。对于 <Plugin Identifier>,请使用上表中 插件标识符 列的值:

    kubectl get moduleinfoes \
      -l cpaas.io/cluster-name=<Cluster Name>,cpaas.io/module-name=<Plugin Identifier> \
      -o jsonpath='{.items[*].metadata.name}'
  2. ModulePlugin 状态中获取 <New Version>,并在此步骤中使用与步骤 1 相同的 <Plugin Identifier> 值(见上表):

    kubectl get moduleplugins <Plugin Identifier> -o jsonpath='{.status.latestVersion}'
  3. patch ModuleInfo。将 <ModuleInfo Name> 替换为步骤 1 中获取的名称,并将 <New Version> 替换为步骤 2 中的值:

    kubectl patch moduleinfoes <ModuleInfo Name> --type merge -p '{"spec":{"version":"<New Version>"}}'
    WARNING

    该 patch 会立即生效,并且直接触发集群插件升级<New Version>,绕过 Web Console 的升级操作。运行命令前请务必确认版本字符串。

从 Web Console 升级

  1. 导航到 Administrator > Clusters > Clusters
  2. 单击已部署插件的集群。
  3. 在集群详情页面切换到 Functional Components 选项卡。
  4. 找到具有可用升级的集群插件——其旁边会显示升级图标。
  5. 单击要升级的插件的 Upgrade 按钮。
  6. 在弹出窗口中查看升级信息,确认要升级的插件版本,然后单击 Upgrade 按钮开始升级过程。

对你已部署的每个插件重复此过程。

INFO

一旦新版本被上传并被平台识别,集群详情页面 Features 选项卡中的每个插件都会显示 Upgrade 按钮。

升级后操作

更新现有 Inference Services

由于 KServe 的 product mode 定义以及版本 2.3 中引入的 InferenceService 资源存在破坏性变更,所有在升级前已存在的 inference services 都必须手动更新。

WARNING

对于所有已存在的 inference services,此步骤是必需的。若未执行此更新,可能会导致 inference services 表现异常。

对于每个现有 inference service,执行以下步骤:

  1. 导航到 inference service 详情页面。

  2. 单击 Update Inference Service

  3. 在更新页面中,单击右上角的 YAML 切换按钮,切换到 YAML 视图。

  4. 找到 spec.predictor.model.name 字段。

  5. 完全删除 name 字段及其值。

    例如,如果 YAML 包含:

    spec:
      predictor:
        model:
          name: kserve-container
          modelFormat:
            name: sklearn

    删除后应如下所示:

    spec:
      predictor:
        model:
          modelFormat:
            name: sklearn
  6. 单击 Save 以应用更改。

  7. 对所有在升级前已存在的 inference services 重复此过程。

验证

Alauda AI

检查名为 defaultAmlCluster 资源中的 status 字段:

kubectl get amlcluster default

应返回 Ready

NAME      READY   REASON
default   True    Succeeded

Alauda Build of KServe

检查名为 default-kserveKServe 资源中的 status 字段:

kubectl get kserve default-kserve -n kserve-operator

应返回 DEPLOYED: True

NAME             DEPLOYED   REASON
default-kserve   True       UpgradeSuccessful

其他集群插件

Administrator 视图中,导航到 Marketplace > Cluster Plugins,并确认以下集群插件显示 Installed 状态且版本为新版本:

  • Alauda AI Workbench(如果已部署)
  • MLflow(如果已部署)
  • Volcano(如果已部署)

弃用 Alauda AI Model Serving

Alauda AI 2.x 系列开始,旧版 Alauda AI Model Serving operator 已弃用。我们强烈建议需要 serverless inference 能力的用户尽快切换到 Knative Operator,以确保长期支持并获取最新功能。

有关如何将你的 serverless 工作负载迁移到新 operator 的指导,请参阅 Migrating to Knative Operator 说明。