Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Important
AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
Azure Kubernetes 服务 (AKS)的托管 KubeRay 扩展处于预览状态。 它在您的集群上安装和管理 KubeRay Operator 和 Ray 自定义资源定义(CRD):RayCluster、RayJob、RayCronJob和RayService。
本文介绍如何使用Azure CLI安装、验证、更新和删除扩展。 可以单独管理 Ray 工作负载及其运行时映像。
Prerequisites
- Azure 订阅和 AKS 群集,该群集运行 Kubernetes 1.34 或更高版本,并在 AKS 支持的区域中使用 托管标识。 如果没有群集,请参阅使用 Azure CLI 创建 AKS 群集。
- Azure CLI的当前版本。
-
k8s-extensionAzure CLI扩展版本 1.8.0 或更高版本。 - kubectl 与群集的 Kubernetes 版本兼容。
- 注册Azure资源提供程序、管理群集扩展、检索群集凭据和检查 Kubernetes 资源的权限。
Limitations
-
现有的开源软件 (OSS) KubeRay 安装:
microsoft.kuberay()。 安装被拒绝后,仍可能更改 Ray CRD 架构和所有权,删除失败的扩展也不会撤消这些更改。 保留 CRDs 和工作负载资源。 如果安装已失败,请在重试之前按照 恢复指南 操作。
准备好你的环境
以下示例使用 Bash。 设置订阅和现有群集详细信息,然后登录:
SUBSCRIPTION_ID="<subscription-id>"
RESOURCE_GROUP="<existing-resource-group>"
CLUSTER_NAME="<existing-aks-cluster>"
EXTENSION_NAME="kuberay"
RELEASE_TRAIN="preview"
az login
az account set --subscription "$SUBSCRIPTION_ID"
检查群集的 Kubernetes 版本。 在继续之前,确认返回的版本为 1.34 或更高版本:
az aks show \
--resource-group "$RESOURCE_GROUP" \
--name "$CLUSTER_NAME" \
--query kubernetesVersion \
--output tsv
连接到群集:
az aks get-credentials \
--resource-group "$RESOURCE_GROUP" \
--name "$CLUSTER_NAME"
安装或更新 CLI 扩展并注册所需的资源提供程序:
az extension add --name k8s-extension --upgrade
az provider register --namespace Microsoft.ContainerService --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
检查已安装的 CLI 扩展版本:
az extension show --name k8s-extension --query version --output tsv
安装 CLI 扩展可提供管理命令;它不会在群集上安装 KubeRay。
卸载现有的 OSS KubeRay Operator
如果没有自托管 Operator,请跳过此步骤。 否则,请备份工作负载数据和清单,暂停 RayCronJob 计划,并等待正在运行的作业完成,然后再删除该 Operator。
对于 Helm 安装,请查找发布名称和命名空间:
helm list --all-namespaces
仅删除 operator 发布并确认其部署已消失:
OSS_RELEASE_NAME="<existing-kuberay-release-name>"
OSS_RELEASE_NAMESPACE="<existing-kuberay-release-namespace>"
helm uninstall "$OSS_RELEASE_NAME" --namespace "$OSS_RELEASE_NAMESPACE"
kubectl get deployments --namespace "$OSS_RELEASE_NAMESPACE"
检查保留的命名空间是否显示 Active,并且每个保留的 *.ray.io CRD 在 ESTABLISHED 列中显示 True:
kubectl get namespace "$OSS_RELEASE_NAMESPACE"
kubectl get crds \
--output='custom-columns=NAME:.metadata.name,ESTABLISHED:.status.conditions[?(@.type=="Established")].status'
如果命名空间正在终止或未建立 Ray CRD,请在启用扩展之前解决此问题。
对于其他安装方法,请使用其移除流程。 保留 Ray CRD 和工作负荷资源;请勿删除其命名空间或 CRD。
安装托管的 KubeRay 扩展
列出群集可用的扩展版本和 preview 发布序列:
az k8s-extension extension-types list-versions-by-cluster \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--extension-type microsoft.kuberay \
--release-train "$RELEASE_TRAIN" \
--output table
确认返回的是兼容版本。 如果未返回任何内容,请参阅 扩展版本发现疑难解答。
创建启用了自动升级的扩展。 该命令使用以下值:
-
--extension-type microsoft.kuberay安装托管的 KubeRay 扩展。 -
--scope cluster为整个群集安装该扩展。 -
--release-namespace kuberay-system为kuberay-operator部署设置命名空间。 -
--release-train "$RELEASE_TRAIN"选择preview发布序列。 - 启用
--auto-upgrade-minor-version true后,可自动升级。 请勿使用此设置指定--version。
az k8s-extension create \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--name "$EXTENSION_NAME" \
--extension-type microsoft.kuberay \
--scope cluster \
--release-namespace kuberay-system \
--release-train "$RELEASE_TRAIN" \
--auto-upgrade-minor-version true
验证扩展安装
检查已安装的版本和预配状态:
az k8s-extension show \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--name "$EXTENSION_NAME" \
--query "{name:name,version:currentVersion,provisioningState:provisioningState,extensionState:extensionState}" \
--output table
安装最多可能需要 15 分钟。 等待命令输出显示以下值,然后验证操作员部署是否可用,并验证 Ray CRD 已安装:
-
provisioningState是Succeeded。 -
extensionState是Available或Ready。
kubectl wait \
--for=condition=Available \
deployment/kuberay-operator \
--namespace kuberay-system \
--timeout=5m
kubectl get crds \
rayclusters.ray.io \
raycronjobs.ray.io \
rayjobs.ray.io \
rayservices.ray.io \
--output name
如果预配或就绪情况检查失败,请参阅 排查托管 KubeRay 扩展问题。
更新托管的 KubeRay 扩展
使用“安装托管的 KubeRay 扩展”中的 az k8s-extension extension-types list-versions-by-cluster 命令检查群集有哪些可用版本。
在同一 shell 会话中,或在按照准备环境中的说明重新定义 RESOURCE_GROUP、CLUSTER_NAME、EXTENSION_NAME 和 RELEASE_TRAIN 后,为现有扩展启用自动升级:
az k8s-extension update \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--name "$EXTENSION_NAME" \
--release-train "$RELEASE_TRAIN" \
--auto-upgrade-minor-version true \
--yes
启用自动升级时,不要指定 --version。 更新后,重复 验证步骤 并确认已安装的版本。
卸载托管的 KubeRay 扩展
在删除托管的 KubeRay 扩展之前,请确保 RESOURCE_GROUP, CLUSTER_NAME并且 EXTENSION_NAME 仍按 准备环境中所述进行设置。 然后查看现有的 Ray 资源:
kubectl get rayclusters,raycronjobs,rayjobs,rayservices --all-namespaces
- 暂停计划作业,让正在运行的作业完成,并保留所需的数据和清单。
- 如果要删除 Ray 工作负载,请在 Operator 仍在运行时删除它们,以便它可以完成清理。
删除扩展实例:
az k8s-extension delete \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--name "$EXTENSION_NAME" \
--yes
Important
删除扩展会保留 Ray CRD 和工作负载,但 Operator 不再管理它们。 请勿将 CRD 删除为清理快捷方式,因为这样做也会删除其自定义资源。
确认 kuberay 扩展不再显示在扩展列表中,并且确认 kuberay-operator 部署已被移除:
az k8s-extension list \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--cluster-type managedClusters \
--output table
kubectl get deployments --namespace kuberay-system