다음을 통해 공유


AKS(Azure Kubernetes Service)에서 Flyte를 사용하여 데이터 및 기계 학습 파이프라인 빌드 및 배포

이 문서에서는 AKS(Azure Kubernetes Service)에서 Flyte를 사용하는 방법을 보여 줍니다. Flyte는 강력하고 신뢰할 수 있는 애플리케이션을 빌드하는 데 도움이 되는 기계 학습, 데이터 엔지니어링 및 데이터 분석 스택을 통합하는 오픈 소스 워크플로 오케스트레이터입니다. Flyte를 Kubernetes 네이티브 워크플로 자동화 도구로 사용하는 경우 인프라 및 리소스 관리에 대한 범위를 늘리지 않고도 실험에 집중하고 비즈니스 가치를 제공할 수 있습니다. Flyte는 Microsoft에서 공식적으로 지원되지 않으므로 사용자의 재량에 따라 사용하세요.

자세한 내용은 Flyte 소개를 참조하세요.

Important

오픈 소스 소프트웨어는 AKS 설명서와 샘플 전반에서 언급되어 있습니다. 배포하는 소프트웨어는 AKS 서비스 수준 계약, 제한된 보증 및 Azure 지원 제외됩니다. AKS와 함께 오픈 소스 기술을 사용하는 경우 각 커뮤니티 및 프로젝트 유지 관리자에서 사용할 수 있는 지원 옵션을 참조하여 계획을 개발합니다.

예를 들어 Ray GitHub 리포지 토리는 응답 시간, 목적 및 지원 수준에 따라 달라지는 여러 플랫폼을 설명합니다.

Microsoft는 AKS에 배포하는 오픈 소스 패키지를 빌드하는 역할을 담당합니다. 해당 책임에는 컨테이너 이미지의 이진 파일에 대한 제어와 함께 빌드, 스캔, 서명, 유효성 검사 및 핫픽스 프로세스의 완전한 소유권이 포함됩니다. 자세한 내용은 AKS의 취약성 관리AKS 지원 범위를 참조하세요.

Flyte 사용 사례

Flyte는 다음을 비롯한 다양한 사용 사례에 사용할 수 있습니다.

  • 간소화된 수익 및 손실 재무 계산을 위한 모델을 제공합니다.
  • 페타바이트 단위의 데이터를 처리하여 새 영역의 3D 매핑을 효율적으로 수행합니다.
  • 이전 버전으로 신속하게 롤백하고 파이프라인에서 버그가 미치는 영향을 최소화합니다.

자세한 내용은 핵심 Flyte 사용 사례를 참조하세요.

필수 구성 요소

  • Azure 구독 Azure 구독이 없는 경우 무료 계정을 만들 수 있습니다.
    • 구독이 여러 개인 경우 az account set --subscription <subscription-id> 명령을 사용하여 올바른 구독을 선택하는지 확인합니다.
  • Azure CLI가 설치 및 구성되었습니다. az --version 명령을 사용하여 버전을 확인합니다. 설치 또는 업그레이드가 필요한 경우, Azure CLI 설치를 참조하세요.
  • Helm CLI가 설치 및 업데이트되었습니다. helm version 명령을 사용하여 버전을 확인합니다. 설치 또는 업그레이드해야 하는 경우 Helm 설치를 참조하세요.
  • kubectl CLI가 설치 및 업데이트되었습니다. az aks install-cli 명령을 사용하거나 Install kubectl을 사용하여 로컬로 설치합니다.
  • 로컬 Docker 개발 환경입니다. 자세한 내용은 Get Docker(Docker 가져오기)를 참조하세요.
  • flytekitflytectl이 설치되어 있습니다. 자세한 내용은 Flyte 설치를 참조하세요.

참고 항목

Azure Cloud Shell을 사용하는 경우 Azure CLI, Helm 및 kubectl이 이미 설치되어 있습니다.

환경 변수 설정

  • 이 문서 전체에서 사용할 환경 변수를 설정합니다. 자리 표시자 값을 사용자 고유의 값으로 바꿉니다.

    export RESOURCE_GROUP="<resource-group-name>"
    export LOCATION="<location>"
    export CLUSTER_NAME="<cluster-name>"
    export DNS_NAME_PREFIX="<dns-name-prefix>"
    

AKS 클러스터 만들기

  1. az group create 명령을 사용하여 AKS 클러스터의 Azure 리소스 그룹을 만듭니다.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. --enable-azure-rbac, --enable-managed-identity, --enable-aad--dns-name-prefix 매개 변수와 함께 az aks create 명령을 사용하여 AKS 클러스터를 만듭니다.

    az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-azure-rbac --enable-managed-identity --enable-aad --dns-name-prefix $DNS_NAME_PREFIX  --generate-ssh-keys
    

AKS 클러스터에 연결

  • az aks get-credentials 명령을 사용하여 AKS 클러스터에 연결하도록 kubectl을 구성합니다.

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

Flyte Helm 리포지토리 추가

  • helm repo add 명령을 사용하여 Flyte Helm 리포지토리를 추가합니다.

    helm repo add flyteorg https://flyteorg.github.io/flyte
    

Flyte Helm 차트 찾기

  1. helm search repo 명령을 사용하여 Flyte Helm 차트를 검색합니다.

    helm search repo flyteorg
    

    다음 예제 출력에서는 사용 가능한 Flyte Helm 차트의 일부를 보여 줍니다.

    NAME                    CHART VERSION   APP VERSION     DESCRIPTION
    flyteorg/flyte          v1.12.0                         A Helm chart for Flyte Sandbox
    flyteorg/flyte-binary   v1.12.0         1.16.0          Chart for basic single Flyte executable deployment
    flyteorg/flyte-core     v1.12.0                         A Helm chart for Flyte core
    flyteorg/flyte-deps     v1.12.0                         A Helm chart for Flyte dependencies
    flyteorg/flyte-sandbox  0.1.0           1.16.1          A Helm chart for the Flyte local sandbox
    flyteorg/flyteagent     v0.1.10                         A Helm chart for Flyte Agent
    
  2. helm repo update 명령을 사용하여 리포지토리를 업데이트합니다.

    helm repo update
    

AKS에 Flyte 차트 배포

이 섹션에서는 AKS에서 Flyte를 사용하여 데이터 및 기계 학습 파이프라인을 빌드하고 배포할 수 있도록 Flyte 이진 Helm 차트를 배포합니다. Flyte 이진 차트는 기본 단일 Flyte 실행 파일 배포입니다.

  1. kubectl create namespace 명령을 사용하여 Flyte 배포에 대한 네임스페이스를 만듭니다.

    kubectl create namespace <namespace-name>
    
  2. helm install 명령을 사용하여 Flyte Helm 차트를 설치합니다. 이 예제에서는 flyte-binary 차트를 사용합니다.

    helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
    
  3. kubectl get services 명령을 사용하여 Flyte 배포가 실행 중인지 확인합니다.

    kubectl get services --namespace <namespace-name> --output wide
    

    다음의 압축된 예제 출력은 Flyte 배포를 보여 줍니다.

    NAME                            TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)          AGE
    flyteorg-flyte-binary-grpc      ClusterIP      xx.x.xx.xxx    <none>          81/TCP           1m
    flyteorg-flyte-binary-http      ClusterIP      xx.x.xx.xxx    <none>          80/TCP           1m
    flyteorg-flyte-binary-webhook   ClusterIP      xx.x.xx.xxx    <none>          80/TCP           1m
    

다음 단계

이 문서에서는 Helm 차트를 사용하여 AKS에 Flyte를 설치하는 방법을 알아보았습니다. 또한 Flyte 프로젝트는 모든 종속성을 자동으로 구성하고 프로덕션 등급 Flyte 클러스터를 배포하는 AKS에 대한 참조 구현을 유지 관리합니다.

데이터 및 기계 학습 파이프라인 빌드 및 배포를 시작하려면 다음 문서를 참조하세요.