Important
AKS 미리 보기 기능은 셀프 서비스에서 사용할 수 있습니다(옵트인 방식). 미리 보기는 "있는 그대로" 및 "사용 가능한 상태로" 제공되며 서비스 수준 계약 및 제한적 보증에서 제외됩니다. AKS 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.
AKS(Azure Kubernetes Service) 관리되는 KubeRay 확장은 미리 보기로 제공됩니다. 이는 클러스터에 KubeRay 연산자와 Ray 사용자 지정 리소스 정의(CRD)인 RayCluster, RayJob, RayCronJob, RayService를 설치하고 관리합니다.
이 문서에서는 Azure CLI 사용하여 확장을 설치, 확인, 업데이트 및 제거하는 방법을 보여줍니다. Ray 워크로드와 해당 런타임 이미지를 별도로 관리합니다.
Prerequisites
- Azure 구독 및 Kubernetes 1.34 이상 버전을 실행하고 AKS 지원 Azure 퍼블릭 클라우드 리전에서 관리 ID를 사용하는 AKS 클러스터가 필요합니다. 클러스터가 없는 경우 Azure CLI 사용하여 AKS 클러스터 만들기를 참조하세요.
- Azure CLI 현재 버전입니다.
-
k8s-extensionAzure CLI 확장 버전, 1.8.0 이상. - kubectl은 클러스터의 Kubernetes 버전과 호환됩니다.
- Azure 리소스 공급자를 등록하고, 클러스터 확장을 관리하고, 클러스터 자격 증명을 검색하고, Kubernetes 리소스를 검사할 수 있는 권한입니다.
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