AKS(Azure Kubernetes Service) 관리되는 KubeRay 확장 설치(미리 보기)

Important

AKS 미리 보기 기능은 셀프 서비스에서 사용할 수 있습니다(옵트인 방식). 미리 보기는 "있는 그대로" 및 "사용 가능한 상태로" 제공되며 서비스 수준 계약 및 제한적 보증에서 제외됩니다. AKS 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.

AKS(Azure Kubernetes Service) 관리되는 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가 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 명령어를 사용하세요.

동일한 셸 세션에서 또는 환경 준비에 설명된 대로 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 확장을 제거하기 전에 , 및 가 환경 준비에 설명된 대로 계속 설정되어 있는지 확인하세요. 그런 다음, 기존 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

다음 단계