Install the managed KubeRay extension on Azure Kubernetes Service (AKS) (preview)

Importante

As funcionalidades de pré-visualização do AKS estão disponíveis num regime de autosserviço e de adesão voluntária. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões de pré-visualização do AKS são apenas parcialmente abrangidas pelo suporte ao cliente, na medida do possível. Assim sendo, estas funcionalidades não se destinam ao uso em produção. Para obter mais informações, consulte os seguintes artigos de suporte:

A extensão KubeRay gerida para Azure Kubernetes Service (AKS) está em pré-visualização. Instala e gere o operador KubeRay e as definições personalizadas de recursos (CRDs) Ray no seu cluster: RayCluster, RayJob, RayCronJob, e RayService.

Este artigo mostra-lhe como instalar, verificar, atualizar e remover a extensão usando a CLI do Azure. Geres as cargas de trabalho do Ray e as imagens de execução separadamente.

Prerequisites

Limitations

  • Instalações KubeRay de software open-source (OSS) existentes:Desinstale qualquer operador KubeRay auto-hospedado existente antes de instalar a extensão KubeRay gerida (microsoft.kuberay). Uma instalação rejeitada ainda pode alterar esquemas e propriedade do Ray CRD, e eliminar a extensão falhada não desfaz essas alterações. Preservar CRDs e recursos de carga de trabalho. Se uma instalação já falhou, siga as orientações de recuperação antes de tentar novamente.

Prepare seu ambiente

Os exemplos seguintes usam Bash. Defina a sua subscrição e os dados do cluster existente, e depois inicie sessão:

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"

Consulta a versão Kubernetes do cluster. Confirme que a versão retornada é a 1.34 ou posterior antes de continuar:

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

Liga-te ao cluster:

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

Instale ou atualize a extensão CLI e registe-se os fornecedores de recursos necessários:

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

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

Verifique a versão instalada da extensão CLI:

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

Instalar a extensão CLI fornece comandos de gestão; não instala o KubeRay no teu cluster.

Desinstalar um operador KubeRay OSS existente

Ignora este passo se não tiveres um operador auto-alojado. Caso contrário, faça backup dos dados da carga de trabalho e manifestos, suspenda RayCronJob os horários e espere que os trabalhos em execução terminem antes de remover o operador.

Para uma instalação Helm, encontre o nome e o espaço de nomes da versão:

helm list --all-namespaces

Remova apenas a autorização do operador e confirme que a sua implementação desapareceu:

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"

Verifique se o espaço de nomes retido aparece Active e que cada CRD retido *.ray.io aparece True na ESTABLISHED coluna:

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

Se o namespace estiver a terminar ou não for estabelecido um CRD Ray, resolva o problema antes de ativar a extensão.

Para outros métodos de instalação, utilize o procedimento de remoção do operador. Preservar os CRDs Ray e os recursos de carga de trabalho; não apague os seus namespaces ou CRDs.

Instalar a extensão KubeRay gerida

Liste as versões de extensão disponíveis para o teu cluster e o preview sistema de lançamentos:

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

Confirma que uma versão compatível foi devolvida. Se nenhuma for devolvida, veja Troubleshoot descoberta de versões da extensão.

Crie a extensão com as atualizações automáticas ativadas. O comando utiliza os seguintes valores:

  • --extension-type microsoft.kuberay instala a extensão KubeRay gerida.
  • --scope cluster Instala a extensão para todo o cluster.
  • --release-namespace kuberay-system define o namespace para a kuberay-operator implantação.
  • --release-train "$RELEASE_TRAIN" seleciona o preview comboio de libertação.
  • --auto-upgrade-minor-version true Permite atualizações automáticas. Não especifiques --version com esta definição.
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

Verifique a instalação da extensão

Inspecionar a versão instalada e o estado de provisionamento:

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

A instalação pode demorar até 15 minutos. Aguarde até que a saída do comando mostre os seguintes valores, depois verifique se a implementação do operador está disponível e que os CRDs Ray estão instalados:

  • provisioningState é Succeeded.
  • extensionState é Available ou 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 as verificações de provisionamento ou prontidão falharem, veja Solucionar problemas da extensão KubeRay gerida.

Atualizar a extensão KubeRay gerida

Use o az k8s-extension extension-types list-versions-by-cluster comando em Instalar a extensão KubeRay gerida para verificar quais as versões disponíveis para o seu cluster.

Na mesma sessão de shell, ou depois de redefinir RESOURCE_GROUP, CLUSTER_NAME, EXTENSION_NAME, e RELEASE_TRAIN conforme descrito em Preparar o seu ambiente, ative atualizações automáticas para uma extensão existente:

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

Não especifiquem --version quando as atualizações automáticas estão ativadas. Após a atualização, repita os passos de verificação e confirme a versão instalada.

Desinstalar a extensão KubeRay gerida

Antes de remover a extensão KubeRay gerida, certifique-se RESOURCE_GROUPde que , CLUSTER_NAME, e EXTENSION_NAME ainda estão definidos conforme descrito em Prepare o seu ambiente. Depois revê os recursos existentes do Ray:

kubectl get rayclusters,raycronjobs,rayjobs,rayservices --all-namespaces
  • Suspender os trabalhos agendados, deixar os trabalhos em execução terminarem e preservar os dados e manifestos necessários.
  • Se quiseres eliminar cargas de trabalho do Ray, elimina-as enquanto o operador ainda está a funcionar para que possa completar a limpeza.

Remover a instância de extensão:

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

Importante

Remover a extensão deixa os CRDs e cargas de trabalho Ray no lugar, mas o operador já não os gere. Não apague CRDs como atalho de limpeza, porque ao fazê-lo também se apagam os recursos personalizados deles.

Confirme que a kuberay extensão já não aparece na lista de extensões e que a kuberay-operator implementação foi removida:

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

kubectl get deployments --namespace kuberay-system

Passos seguintes