Installare l'estensione KubeRay gestita in Servizio Azure Kubernetes (AKS) (anteprima)

Importante

Le funzionalità in anteprima di AKS sono disponibili in modalità self-service, su base volontaria. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime di AKS sono coperte solo parzialmente dall'assistenza clienti nei limiti del possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:

L'estensione KubeRay gestita per Servizio Azure Kubernetes (AKS) è in anteprima. Installa e gestisce l'operatore KubeRay e le definizioni di risorse personalizzate Ray nel cluster: RayCluster, RayJob, RayCronJob, e RayService.

Questo articolo illustra come installare, verificare, aggiornare e rimuovere l'estensione usando il interfaccia della riga di comando di Azure. Gestisci separatamente i carichi di lavoro Ray e le relative immagini di runtime.

Prerequisites

Limitations

  • Installazioni KubeRay (OSS) di software open source esistenti:disinstallare qualsiasi operatore KubeRay self-hosted esistente prima di installare l'estensione KubeRay gestita (microsoft.kuberay). Un'installazione rifiutata può comunque modificare gli schemi e la proprietà di Ray CRD e l'eliminazione dell'estensione non riuscita non annulla tali modifiche. Mantenere i CRDs e le risorse del carico di lavoro. Se un'installazione è già fallita, seguire le indicazioni sul ripristino prima di riprovare.

Prepara il tuo ambiente

Gli esempi seguenti usano Bash. Impostare la sottoscrizione e i dettagli del cluster esistenti e quindi accedere:

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"

Controllare la versione di Kubernetes del cluster. Verificare che la versione restituita sia 1.34 o successiva prima di continuare:

az aks show \
  --resource-group "$RESOURCE_GROUP" \
  --name "$CLUSTER_NAME" \
  --query kubernetesVersion \
  --output tsv

Connettersi al cluster:

az aks get-credentials \
  --resource-group "$RESOURCE_GROUP" \
  --name "$CLUSTER_NAME"

Installare o aggiornare l'estensione CLI e registrare i provider di risorse necessari:

az extension add --name k8s-extension --upgrade

az provider register --namespace Microsoft.ContainerService --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait

Controlla la versione dell'estensione CLI installata:

az extension show --name k8s-extension --query version --output tsv

L'installazione dell'estensione dell'interfaccia della riga di comando fornisce comandi di gestione; non installa KubeRay nel cluster.

Disinstallare un operatore KubeRay OSS esistente

Ignora questo passaggio se non si dispone di un operatore self-hosted. In caso contrario, eseguire il backup dei dati e dei manifest del carico di lavoro, sospendere RayCronJob le pianificazioni e attendere il completamento dei job in esecuzione prima di rimuovere l'operatore.

Per un'installazione Helm, trovare il nome della release e lo spazio dei nomi:

helm list --all-namespaces

Rimuovere solo la release dell'operatore e verificare che la distribuzione non sia più presente:

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"

Verificare che lo spazio dei nomi conservato mostri Active e che ogni CRD conservato *.ray.io venga visualizzato True nella ESTABLISHED colonna :

kubectl get namespace "$OSS_RELEASE_NAMESPACE"
kubectl get crds \
  --output='custom-columns=NAME:.metadata.name,ESTABLISHED:.status.conditions[?(@.type=="Established")].status'

Se lo spazio dei nomi è in fase di terminazione o non viene stabilito un CRD Ray, risolvere il problema prima di abilitare l'estensione.

Per altri metodi di installazione, usare la relativa procedura di rimozione. Conservare i CRD Ray e le risorse del carico di lavoro; non eliminare gli spazi dei nomi o i CRD.

Installare l'estensione KubeRay gestita da Azure

Elencare le versioni di estensione disponibili per il cluster e il release train 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

Verificare che venga restituita una versione compatibile. Se non viene restituito alcun valore, vedere Risolvere i problemi di individuazione della versione dell'estensione.

Crea l'estensione con aggiornamenti automatici attivati. Il comando usa i valori seguenti:

  • --extension-type microsoft.kuberay installa l'estensione KubeRay gestita.
  • --scope cluster installa l'estensione per l'intero cluster.
  • --release-namespace kuberay-system imposta lo spazio dei nomi per il deployment kuberay-operator.
  • --release-train "$RELEASE_TRAIN" seleziona il treno di rilascio preview.
  • --auto-upgrade-minor-version true abilita gli aggiornamenti automatici. Non specificare --version con questa impostazione.
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

Verificare l'installazione dell'estensione

Esaminare la versione installata e lo stato di provisioning:

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

L'installazione può richiedere fino a 15 minuti. Attendere che l'output del comando mostri i valori seguenti, quindi verificare che la distribuzione dell'operatore sia disponibile e che siano installati i CRD di Ray:

  • provisioningState è Succeeded.
  • extensionState è Available o 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

Se i controlli di provisioning o idoneità hanno esito negativo, vedere Risolvere i problemi relativi all'estensione KubeRay gestita.

Aggiornare l'estensione KubeRay gestita

Usare il az k8s-extension extension-types list-versions-by-cluster comando in Installare l'estensione KubeRay gestita per verificare quali versioni sono disponibili per il cluster.

Nella stessa sessione della shell o dopo aver ridefinito RESOURCE_GROUP, CLUSTER_NAME, EXTENSION_NAMEe RELEASE_TRAIN come descritto in Preparare l'ambiente, abilitare gli aggiornamenti automatici per un'estensione esistente:

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

Non specificare --version quando gli aggiornamenti automatici sono abilitati. Dopo l'aggiornamento, ripetere i passaggi di verifica e confermare la versione installata.

Disinstallare l'estensione KubeRay gestita

Prima di rimuovere l'estensione KubeRay gestita, assicurarsi che RESOURCE_GROUP, CLUSTER_NAMEe EXTENSION_NAME siano ancora impostate come descritto in Preparare l'ambiente. Esaminare quindi le risorse Ray esistenti:

kubectl get rayclusters,raycronjobs,rayjobs,rayservices --all-namespaces
  • Sospendi i job pianificati, consenti ai job in esecuzione di terminare e preserva i dati e i manifest necessari.
  • Se si desidera eliminare i carichi di lavoro Ray, eliminarli mentre l'operatore è ancora in esecuzione in modo che possa completare la pulizia.

Rimuovere l'istanza dell'estensione:

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

Importante

La rimozione dell'estensione lascia i CRD di Ray e i carichi di lavoro sul posto, ma l'operatore non li gestisce più. Non eliminare i CRDs come scorciatoia per la pulizia, perché in questo modo vengono eliminate anche le risorse personalizzate.

Verificare che l'estensione kuberay non venga più visualizzata nell'elenco di estensioni e che il deployment kuberay-operator sia stato rimosso:

az k8s-extension list \
  --resource-group "$RESOURCE_GROUP" \
  --cluster-name "$CLUSTER_NAME" \
  --cluster-type managedClusters \
  --output table

kubectl get deployments --namespace kuberay-system

Passaggi successivi