安装 Alauda AI
Alauda AI 通过 Alauda AI Operator 提供模型管理、推理、训练和 MLOps 能力。系统会自动创建 default AmlCluster 实例,用于控制集群中启用的组件。默认情况下,Alauda AI 在推理后端使用 KServe 的 Standard 模式,这种模式特别推荐用于资源密集型的生成式工作负载。该模式通过利用基础 Kubernetes 功能,提供了一种直接的模型部署方式,并具备强大且可定制的部署能力。
可选能力(包括用于将推理服务缩容至零的 Knative 功能)可通过更新 AmlCluster 实例中的组件开关来启用。所需的 Operator 和 operand 会根据这些设置自动安装。
推荐的部署选项:对于生成式推理工作负载,推荐使用 Standard 方式(之前称为 RawKubernetes Deployment),因为它可对资源分配和扩缩容提供最强控制。
目录
下载软件包前提条件上传软件包安装 Alauda AI配置 Alauda AI 实例导入用于 Catalog 的内置模型镜像FAQ1. 为 aml-skipper 配置审计输出目录2. 为 vLLM-ascend 设置 KServe Modelcar UID下载软件包
有关下载安装包和 violet 工具的通用操作步骤,请参见 Upload Packages。
Alauda AI 所需的软件包为:
- Alauda AI — 用于模型管理、推理服务和组件生命周期管理的主平台组件。
下载与 Alauda AI 版本和目标集群架构相匹配的软件包版本。
前提条件
下面列出的依赖组件以软件包形式交付。你无需在目标集群上单独安装它们——在安装 Alauda AI 之前先将这些软件包上传到平台仓库,Alauda AI 安装完成后,AmlCluster 会自动安装并管理这些组件。
默认需要以下组件:
- PostgreSQL
- Alauda Cache Service for Redis OSS
- Alauda Build of Authorino
- Alauda Build of Envoy AI Gateway
- Alauda Build of KServe
- Alauda Build of LeaderWorkerSet
上传软件包
将 Alauda AI 软件包上传到将运行 Alauda AI 的集群。按照 Upload Packages 准备 violet,配置平台或外部 registry 凭据,并上传软件包。
上传完成后,按如下所述从 OperatorHub 安装 Alauda AI。可选能力会在安装后通过 AmlCluster 组件配置启用。
安装 Alauda AI
操作步骤
在 Administrator 视图中:
-
单击 Marketplace / OperatorHub。
-
在控制台顶部的 Cluster 下拉列表中,选择要安装 Alauda AI 的目标集群。
-
选择 Alauda AI,然后单击 Install。
Install Alauda AI 窗口将弹出。
-
然后在 Install Alauda AI 窗口中进行操作。
-
保持 Channel 不变。
-
检查 Version 是否与要安装的 Alauda AI 版本匹配。
-
保持 Installation Location 不变,默认应为
aml-operator。 -
将 Upgrade Strategy 选择为 Manual。
-
单击 Install。
验证
确认 Alauda AI 磁贴显示以下状态之一:
Installing:安装正在进行中;请等待其变为Installed。Installed:安装已完成。
配置 Alauda AI 实例
Alauda AI 安装完成后,operator 会自动创建集群级别的 default AmlCluster 实例。你无需手动创建 default 实例。请根据你的环境检查并更新自动创建的实例。
部署 Alauda AI
在 Administrator 视图中:
-
单击 Marketplace / OperatorHub。
-
在控制台顶部的 Cluster 下拉列表中,选择要安装 Alauda AI Operator 的目标集群。
-
选择 Alauda AI,然后单击它。
-
在 Alauda AI 页面中,单击选项卡中的 All Instances。
-
等待
defaultAmlCluster实例出现,然后编辑它。 -
从下拉列表中选择 Deploy Flavor:
single-node适用于非 HA 部署。ha-cluster适用于 HA 集群部署(生产环境推荐)。
-
在 Domain 字段中输入一个有效域名。
INFO该域名由 ingress gateway 用于暴露模型服务。 大多数情况下,你会希望使用泛域名,例如 *.example.com。
你可以通过更新 Domain Certificate Type 字段来指定以下证书类型:
ProvidedSelfSignedACPDefaultIngress
默认情况下,配置使用
SelfSigned证书类型来保护到集群的 ingress 流量,证书存储在 Domain Certificate Secret 字段中指定的knative-serving-certsecret 里。
组件管理状态
Alauda AI 2.8 会自动安装并管理 AmlCluster 配置中选择的组件。以下值显示默认组件设置。请将你需要的条目合并到现有的 default AmlCluster 中;不要创建第二个实例。
spec.components 字段使用与以下产品和 Operator 对应的配置键:
管理状态含义如下:
对于常见的 2.8 部署,当需要相应能力时,请将以下组件开关设置为 Managed。servingRuntimeOperator 的设置取决于你环境中的加速器和 serving-runtime 要求。
servingRuntimeOperator控制 Alauda Build of Serving Runtime,其中包含用于 Nvidia GPU 的 vLLM 和 llm-d serving runtime,仅适用于 x86。对于需要这些 runtime 的 Nvidia/x86 部署,请启用它。如果你的环境使用 Ascend 或其他非 Nvidia 加速器,请不要启用或安装此组件;应改用适用于该硬件的 serving runtime。
启用 Knative 功能
在现有的 default AmlCluster 中,将 spec.components.knativeServing.managementState 设置为 SharedManaged:
配置 KServe
Alauda Build of KServe 由 Alauda AI 安装并管理。default AmlCluster 实例中的 kserve 组件默认值为 Managed,因此 Alauda AI 会安装 KServe Operator 并自动创建 KServe 实例。你无需上传 KServe Operator 软件包、从 OperatorHub 安装 Operator,或手动创建 KServe 自定义资源。
KServe 参数通过 spec.components.kserve.values 暴露。请将所需设置合并到现有的 default AmlCluster 中:
主要的 kserve 组件设置:
gateway 预设会配置位于推理流量前端的 AI gateway 栈:
验证 AmlCluster 是否已完成协调,以及 KServe 实例是否由 Alauda AI 创建:
当状态显示 DEPLOYED: True 时,AmlCluster 应报告 Phase=Ready 且 Reason=Reconciled,此时 KServe 实例即为就绪状态。
配置自定义 OIDC 提供方(可选)
默认情况下,Alauda AI 使用 ACP Dex 作为 OIDC 提供方。在此默认配置下,AmlCluster 实例中不需要额外的 spec.oidc 配置。
如果你希望 Alauda AI 使用其他 OIDC 提供方,请在该提供方中注册 OAuth2/OIDC 客户端,允许 Alauda AI 回调 URL,然后更新 AmlCluster YAML 中的 spec.oidc。回调 URL 为:
Alauda AI 会从 Alauda AI 安装集群中 kubeflow 命名空间内的 Kubernetes Secret 读取 OIDC client secret。默认 Secret 名称为 aml-oidc-secret,Secret key 必须为 client-secret。请使用 OIDC 提供方中的 client secret 更新此 Secret:
然后配置 spec.oidc:
如果提供方在 <issuerURL>/.well-known/openid-configuration 暴露了标准 OIDC discovery 文档,那么当这些字段未设置时,Alauda AI 会从 discovery 中自动填充 redeemURL、jwksURL 和 profileURL。如果 discovery 不可用,请显式配置这些字段:
将映射后的 loginURL 值用于 main.loginURL;如果你配置了 secondary endpoint,则用于 secondary.loginURL。
Keycloak 配置示例:
- 在目标 realm 中创建一个 OpenID Connect client。
- 将 Client ID 设置为
spec.oidc.clientID中使用的值,例如aml。 - 打开 Client authentication。
- 在 Authentication flow 下,选择 Standard flow。
- 打开 Require PKCE,并将 PKCE Method 设置为
S256。 - 将 Valid redirect URIs 设置为
https://<platform-address>/clusters/<cluster-name>/aml/*。 - 从 Keycloak client 的 Credentials 选项卡复制 client secret,并更新上面显示的
aml-oidc-secretSecret。 - 在 client 的 Client scopes 设置中,将
basic、email和profile设为 Default,并将其他 scopes 设为 Optional,除非你的环境明确需要它们。除非必要,请避免添加较大的 claim mapper,例如 groups、realm roles、client roles、address、phone、offline access 以及其他应用特定的 claims。过大的 token 可能会导致 oauth2-proxy cookie 超过浏览器或 ingress header 大小限制,并引发登录循环或 HTTP 431/400 错误。
配置控制台语言(可选)
Alauda AI 会从 AmlCluster 实例中的 spec.i18n.languages 读取可用的控制台语言。默认值为 en。
支持的语言代码如下:
en 和 zh 是内置语言。其他语言仅会添加为可选项。若要成功切换到这些语言,你还需要提供对应的翻译文件。
你可以在为其他语言准备翻译文件时,参考内置的英文和中文翻译文件:
从这些文件生成目标语言的翻译,或者联系 Alauda 获取所需语言的最新翻译内容。
例如,若要在控制台中提供英文、中文和法语可选项,请更新 AmlCluster YAML:
然后在 cpaas-system 命名空间中为法语创建一个翻译文件 ConfigMap:
其他非内置语言可使用相同模式:将 fr 替换为目标语言代码,并提供翻译后的 lich-single.json 内容。
配置 Model Catalog
-
Model OCI Registry Address:为 Model Catalog 托管模型 OCI 产物的 registry 地址。该字段没有默认值,必须根据你的环境进行配置。
该 registry 存储 Model Catalog 使用的模型 OCI 镜像。请使用 Harbor 或其他启用 HTTPS 访问的生产模式 OCI registry。Model Catalog 不支持为拉取模型 OCI 镜像配置
imagePullSecret,因此用于 Model Catalog 的 Harbor project 或 repository 必须允许推理集群节点匿名拉取。在 Harbor 中,将存储 Model Catalog 镜像的 project 设为 Public。如果目标环境中无法部署支持 HTTPS 的 registry,可以将 HTTP registry 作为备用方案。在部署模型之前,请先在推理集群中的每个节点上配置容器运行时。对于 containerd,可为该 registry 地址添加 insecure registry mirror,例如创建
/etc/containerd/certs.d/<registry-host:port>/hosts.toml:然后重启 containerd,或通过你的集群管理系统应用等效的节点运行时配置。该配置必须存在于调度推理服务 Pod 的节点上;否则,即使 Model Catalog 能列出该模型,Pod 的镜像拉取仍会失败。containerd 的具体配置路径可能因 Kubernetes 发行版而异;应用配置后,请验证节点能够拉取 Model Catalog 镜像,例如使用
crictl pull <registry-host:port>/<repository>:<tag>。 -
Source of PVC:选择复用现有 PVC 还是创建新的 PVC。使用
CreateNew可让安装过程创建 PVC。 -
StorageClass Name:创建新 PVC 时使用的 StorageClass。
验证
检查配置并保存 default AmlCluster 实例,然后查看其状态:
该资源应为 Ready:
导入用于 Catalog 的内置模型镜像
Alauda AI 中的 Catalog 功能自带一组内置模型 OCI 镜像,用户可以从 Web Console 将其作为推理服务部署。这些镜像必须先导入到 Model Catalog 配置的 OCI registry 中,Catalog 才能提供这些镜像。如果不执行这一步,安装虽然会成功完成,但之后从 Catalog 部署内置模型时会失败,并出现 ImagePullBackOff。
获取 OCI 镜像 tar 包
内置模型镜像以 OCI archive tar 包(符合 OCI Image Layout Specification 的 .tar 文件)形式交付。每个 tar 包都包含一个模型的多架构镜像(linux/amd64 + linux/arm64)。
你可以从 Customer Portal Marketplace 下载这些 tar 包,或者联系你的 Alauda 支持代表获取与 Alauda AI 版本匹配的软件包。
推送到 Harbor
推荐的目标 registry 是 Harbor。下面的示例使用 HTTP Harbor registry。如果你的 Harbor registry 使用 HTTPS,请省略 --plain-http,并将 API URL 从 http:// 改为 https://。
在安装了 ctr、curl 和 jq 且可以访问 Harbor 的节点上运行这些命令。
首先,设置环境变量:
- Harbor registry 端点,不包含 URL scheme。
- Harbor 中的目标 repository 路径,格式为
<project>/<image-name>。例如,mlops/modelcar-qwen3.5-0.8b使用 Harbor projectmlops和 repositorymodelcar-qwen3.5-0.8b。 - OCI archive 携带的镜像标签。如果你不知道它,可使用下面的命令从 tar 包中提取。
- 上一步获取的 OCI archive tar 包路径。
- 形式为
user:password的 Harbor 凭据。如果你没有这些信息,请联系平台管理员。
tar 包通常在 OCI image layout 中自带其标签(例如 v0.1.0)。如有需要,可从 tar 包中提取它:
检查该镜像标签是否已存在于 Harbor 中:
如果 Harbor project 还不存在,请在推送前先创建它:
如果 project 已存在,Harbor 会返回非 2xx 状态码。确认 project 存在后,请确保其配置为 public project,然后继续导入和推送。Model Catalog 不支持在部署模型 OCI 镜像时配置 imagePullSecret,因此推理集群节点必须能够匿名拉取这些镜像。
然后运行导入和推送操作步骤:
对每个内置模型 tar 包重复此操作步骤,并分别变更每个模型对应的 $REPO、$TAG 和 $TAR。
--all-platforms 在 import 步骤中至关重要:如果省略它,就只会导入节点宿主架构对应的内容,后续 push 会悄悄遗漏其他平台的 blob。push 步骤不需要该参数——推送多架构索引时会自动推送其引用的所有平台。
验证 Harbor 导入
确认 Harbor 现在可以提供该镜像:
HTTP=200 表示镜像已成功导入到 Harbor。期望输出中包含 digest、size、push time、tag 和平台信息:
至此,Alauda AI 的核心能力已成功部署。如果你想快速体验产品,请参阅 Quick Start。
FAQ
1. 为 aml-skipper 配置审计输出目录
默认的审计输出路径为宿主机上的 /cpaas/audit。但是,在某些操作系统上(例如 Alauda OS),宿主机的根路径是只读的,无法创建 /cpaas 目录。在这种情况下,用户需要修改审计输出路径。
要修改审计输出路径,请更新 AmlCluster 默认资源,并在 spec.values 下添加 amlSkipper.auditLogHostPath.path 配置。例如:
具体路径应与 Alauda Container Platform Log Collector 的采集配置保持一致。
2. 为 vLLM-ascend 设置 KServe Modelcar UID
如果你计划使用 vLLM-ascend,请在 default AmlCluster 中将 KServe Modelcar UID 设置为 0(默认值为 1000):
该设置作用于集群级别,并会影响 Alauda AI 安装集群中的所有 Modelcar 工作负载。