Azure Kubernetes Service (AKS)にマネージド KubeRay 拡張機能をインストールする (プレビュー)

Important

AKS のプレビュー機能は、セルフサービスのオプトイン単位で利用できます。 プレビューは、"現状有姿のまま" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 AKS プレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は運用環境での使用を目的としていません。 詳細については、次のサポート記事を参照してください。

Azure Kubernetes Service (AKS)用のマネージド KubeRay 拡張機能はプレビュー段階です。 クラスター上に KubeRay オペレーターと Ray カスタムリソース定義 (CRD) をインストール、管理します: RayCluster、RayJob、RayCronJob、RayService。

この記事では、Azure CLIを使用して拡張機能をインストール、確認、更新、削除する方法について説明します。 Ray ワークロードとそのランタイム イメージは個別に管理します。

Prerequisites

Limitations

  • 既存のオープンソースソフトウェア (OSS) KubeRay のインストール環境: マネージド KubeRay 拡張機能 (microsoft.kuberay) をインストールする前に、 既存のセルフホスト型 KubeRay オペレーターをすべてアンインストールしてください。 インストールが拒否された場合でも、Ray CRD のスキーマや所有権は変更される可能性があり、失敗した拡張機能を削除しても、それらの変更は元に戻りません。 CRD とワークロード リソースを保持します。 インストールが既に失敗した場合は、再試行する前に 回復ガイダンス に従ってください。

環境を準備する

次の例では 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 拡張機能をインストールすると、管理コマンドが提供されます。CLI 拡張機能をインストールしても、KubeRay はクラスターにインストールされません。

既存の OSS KubeRay オペレーターをアンインストールする

セルフホスト型のオペレーターをお持ちでない場合は、この手順をスキップしてください。 それ以外の場合は、ワークロードデータとマニフェストをバックアップし、RayCronJob のスケジュールを一時停止し、実行中のジョブが終了するのを待ってから、オペレーターを削除してください。

Helm インストールの場合は、リリース名と名前空間を確認します。

helm list --all-namespaces

オペレーターのリリースのみを削除し、そのデプロイがなくなったことを確認します。

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 がTrue列にESTABLISHED表示されていることを確認します。

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 拡張機能を更新する

クラスターで使用できるバージョンを確認するには、az k8s-extension extension-types list-versions-by-clusterのコマンドを使用します。

同じシェル セッションで、またはRELEASE_TRAINで説明されているように、RESOURCE_GROUP、CLUSTER_NAME、およびEXTENSION_NAMEを再定義した後、既存の拡張機能の自動アップグレードを有効にします。

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 拡張機能を削除する前に、EXTENSION_NAMEで説明されているように、、RESOURCE_GROUP、および CLUSTER_NAME が引き続き設定されていることを確認してください。 次に、既存の Ray リソースを確認します。

kubectl get rayclusters,raycronjobs,rayjobs,rayservices --all-namespaces
  • スケジュールされたジョブを中断し、実行中のジョブを完了させ、必要なデータとマニフェストを保持します。
  • Ray ワークロードを削除する場合は、オペレーターの実行中にそれらを削除して、クリーンアップを完了できるようにします。

拡張機能インスタンスを削除します。

az k8s-extension delete \
  --resource-group "$RESOURCE_GROUP" \
  --cluster-name "$CLUSTER_NAME" \
  --cluster-type managedClusters \
  --name "$EXTENSION_NAME" \
  --yes

Important

拡張機能を削除すると、Ray CRD とワークロードはそのまま残りますが、オペレーターはそれらを管理しなくなります。 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

次のステップ