从 AI 1.3 升级

目录

升级前准备

保留推理服务运行时

此步骤确保在升级过程中不会意外删除旧的 ClusterServingRuntime 资源。脚本会为所有 ClusterServingRuntime 资源添加 "helm.sh/resource-policy": "keep" 注解,指示 Helm 在升级时保留这些资源。

在目标集群中执行以下脚本:

migrate-clusterservingruntime-resources.sh
#!/bin/bash
set -e

# Check if kubectl is installed
if ! command -v kubectl &> /dev/null; then
    echo "Error: kubectl not found. Please install kubectl and ensure it is in your PATH."
    exit 1
fi

echo "Fetching all ClusterServingRuntime resources and checking for annotations..."

kubectl get clusterservingruntime --no-headers -o name | while read -r name; do

    if kubectl get "$name" -o yaml | grep -q 'helm.sh/resource-policy: keep'; then
        echo "ClusterServingRuntime $name already has the 'helm.sh/resource-policy: keep' annotation. Skipping."
    else
        echo "ClusterServingRuntime $name does not have the 'helm.sh/resource-policy: keep' annotation. Patching..."

        kubectl patch "$name" \
            --type=merge \
            -p '{"metadata":{"annotations":{"helm.sh/resource-policy": "keep"}}}'

        echo "Successfully patched $name."
    fi
done

echo "migrate-clusterservingruntime-resources completed."

迁移 InferenceService 资源

Alauda AI 1.4 之前,InferenceService 资源未明确指定其部署模式。升级前,您必须为所有推理服务显式定义部署模式。

WARNING

此迁移会更新您的推理服务。在 Knative Serverless 模式下,会触发滚动更新:创建新的 revision,旧的仅在新的 Ready 后删除。

如果服务可能受资源限制(GPU/CPU/内存),请安排维护窗口或在运行脚本前临时停止服务。

在目标集群中执行以下脚本:

migrate-inferenceservice-resources.sh
#!/bin/bash

set -e

kubectl get inferenceservice --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name --no-headers | while read -r namespace name; do

    if kubectl get inferenceservice "$name" -n "$namespace" -o yaml | grep -q 'serving.kserve.io/deploymentMode:' ; then
        echo "InferenceService ${namespace}/${name} already has 'serving.kserve.io/deploymentMode' annotation. Skipping."
    else
        echo "InferenceService ${namespace}/${name} does not have 'serving.kserve.io/deploymentMode' annotation. Patching..."

        kubectl patch inferenceservice "$name" -n "$namespace" --type=merge -p '{"metadata":{"annotations":{"serving.kserve.io/deploymentMode": "Serverless"}}}'

        echo "Successfully patched ${namespace}/${name}."
    fi
done

echo "migrate-inferenceservice-resources completed."

安装 Alauda AI 集群组件

请访问 Alauda AI Cluster 了解:

WARNING

请忽略“创建 Alauda AI 集群实例”,因为我们是从之前已管理的版本升级 Alauda AI

  1. 下载 Alauda AI ClusterKServeless 的 operator bundle 包。
  2. 上传 operator bundle 包到目标集群。
  3. 按照以下流程进行升级。

升级流程

以下操作步骤描述如何从 AI 1.3 升级到 Alauda AI 1.4

升级 Alauda AI Essentials

Alauda AI Essentials 将与 global 集群的功能组件一起升级。

管理员 视图中,导航至左侧菜单的 Clusters / Cluster,在右侧面板找到 global 集群,点击 Functional Components 标签页中的 Upgrade 按钮触发升级。

INFO

所有需要升级的组件,包括 Alauda AI Essentials,将一起升级,无法单独升级。

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

升级 Alauda AI Operators

两个 operator 的升级步骤几乎相同,仅目标组件不同。

步骤Alauda AI OperatorAlauda AI Model Serving Operator
1. 导航登录 Web Console,进入 管理员 视图的 Marketplace > OperatorHub登录 Web Console,进入 管理员 视图的 Marketplace > OperatorHub
2. 选择选择目标 cluster选择目标 cluster
3. 点击点击 Alauda AI 卡片。点击 Alauda AI Model Serving 卡片。
4. 确认在升级提示中点击 Confirm在升级提示中点击 Confirm
INFO

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

验证

Alauda AI

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

kubectl get amlcluster default

应返回 Ready

NAME      READY   REASON
default   True    Succeeded

Alauda AI Model Serving

检查名为 default-knative-servingKnativeServing 资源的状态字段:

kubectl get KnativeServing.components.aml.dev default-knative-serving

应返回 InstallSuccessful

NAME                      DEPLOYED   REASON
default-knative-serving   True       UpgradeSuccessful