Instalar a extensão kubeRay gerenciada em AKS (Serviço de Kubernetes do Azure) (versão prévia)

Importante

As funcionalidades em versão preliminar do AKS estão disponíveis de forma optativa e por autoatendimento. As versões prévias são fornecidas “no estado em que se encontram” e “conforme disponíveis” e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:

A extensão KubeRay gerenciada para AKS (Serviço de Kubernetes do Azure) está em versão prévia. Ele instala e gerencia o operador KubeRay e as CRDs (definições de recursos personalizados) do Ray em seu cluster: RayCluster, RayJob, RayService e RayCronJob.

Este artigo mostra como instalar, verificar, atualizar e remover a extensão usando a CLI do Azure. Você gerencia suas cargas de trabalho do Ray e suas imagens de runtime separadamente.

Prerequisites

Limitations

  • Instalações existentes do KubeRay OSS (software de código aberto):Desinstale qualquer operador KubeRay auto-hospedado existente antes de instalar a extensão gerenciada do KubeRay (microsoft.kuberay). Uma instalação com rejeitada ainda pode alterar os esquemas e a propriedade do Ray CRD, e excluir a extensão com falha não desfaz essas alterações. Preservar CRDs e recursos de carga de trabalho. Se uma instalação já tiver falhado, siga as diretrizes de recuperação antes de tentar novamente.

Prepare o seu ambiente

Os exemplos a seguir usam Bash. Defina a assinatura e os detalhes do cluster existentes e faça login:

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"

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

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

Conecte-se ao cluster:

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

Instale ou atualize a extensão da CLI e registre os provedores 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 da extensão da CLI instalada:

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

A instalação da extensão da CLI fornece comandos de gerenciamento; isso não instala o KubeRay em seu cluster.

Desinstalar um operador OSS KubeRay existente

Ignore esta etapa se você não tiver um operador auto-hospedado. Caso contrário, faça backup de dados e manifestos da carga de trabalho, suspenda os agendamentos de RayCronJob e aguarde até que os trabalhos em execução sejam concluídos antes de remover o operador.

Para uma instalação do Helm, localize o nome da release e o namespace:

helm list --all-namespaces

Remova apenas a versão do operador e confirme se a implantação está concluída:

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 namespace retido mostra Active e cada *.ray.io CRD retido mostra True na coluna ESTABLISHED:

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 sendo encerrado ou um Ray CRD não estiver estabelecido, resolva o problema antes de habilitar a extensão.

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

Instalar a extensão kubeRay gerenciada

Liste as versões de extensão disponíveis do cluster e a linha de versão 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

Confirme se uma versão compatível foi retornada. Se nenhum for retornado, consulte Solucionar problemas de descoberta de versão da extensão.

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

  • --extension-type microsoft.kuberay instala a extensão KubeRay gerenciada.
  • --scope cluster instala a extensão para todo o cluster.
  • --release-namespace kuberay-system define o namespace da implantação kuberay-operator.
  • --release-train "$RELEASE_TRAIN" seleciona o preview release train.
  • --auto-upgrade-minor-version true permite atualizações automáticas. Não especifique --version com essa configuraçã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

Verificar a instalação da extensão

Inspecione 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 levar até 15 minutos. Aguarde até que a saída do comando mostre os seguintes valores e verifique se a implantação do operador está disponível e se os CRDs do 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 preparação falharem, consulte Solucionar problemas da extensão kubeRay gerenciada.

Atualizar a extensão do KubeRay gerenciado

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

Na mesma sessão de shell ou depois de redefinir RESOURCE_GROUP, CLUSTER_NAME, EXTENSION_NAME e RELEASE_TRAIN conforme descrito em Preparar seu ambiente, habilite 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 especifique --version quando as atualizações automáticas estão habilitadas. Após a atualização, repita as etapas de verificação e confirme a versão instalada.

Desinstalar a extensão kubeRay gerenciada

Antes de remover a extensão kubeRay gerenciada, verifique que RESOURCE_GROUP, CLUSTER_NAME e EXTENSION_NAME ainda estejam definidos conforme descrito em Preparar seu ambiente. Em seguida, examine os recursos do Ray existentes:

kubectl get rayclusters,raycronjobs,rayjobs,rayservices --all-namespaces
  • Suspender trabalhos agendados, permitir a conclusão de trabalhos e preservar os dados e manifestos necessários.
  • Se você quiser excluir cargas de trabalho do Ray, exclua-as enquanto o operador ainda estiver em execução para que ele possa concluir a limpeza.

Remova 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

A remoção da extensão mantém os CRDs do Ray e as cargas de trabalho no lugar, mas o operador não os gerencia mais. Não exclua CRDs como um atalho de limpeza, pois isso também exclui seus recursos personalizados.

Confirme se a kuberay extensão não aparece mais na lista de extensões e se a kuberay-operator implantaçã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

Próximas Etapas