AKS(Azure Kubernetes Service)에서 아티팩트 스트리밍을 사용하여 이미지 끌어오기 시간 단축(미리 보기)

고성능 컴퓨팅 워크로드에는 대용량 이미지가 포함되는 경우가 많아 이미지 끌어오기 시간이 길어지고 워크로드 배포 속도가 느려질 수 있습니다. AKS의 아티팩트 스트리밍을 사용하면 ACR(Azure Container Registry)에서 AKS로 컨테이너 이미지를 스트리밍할 수 있습니다. AKS는 초기 Pod 시작에 필요한 계층만 끌어오므로 이미지를 끌어오고 워크로드를 배포하는 데 걸리는 시간이 줄어듭니다.

아티팩트 스트리밍은 이미지 크기에 따라 Pod 준비 시간을 15% 이상 줄일 수 있으며 이미지 <30GB에 가장 적합합니다. 테스트 결과에 따르면 이미지 <10GB의 Pod 작동 시간이 몇 분에서 몇 초로 단축되었습니다. 대용량 파일(>30GB)에 액세스해야 하는 Pod가 있는 경우 이를 계층으로 빌드하는 대신 볼륨으로 탑재해야 합니다. 이는 Pod에서 해당 파일을 시작해야 하는 경우 노드를 정체시키기 때문입니다. 아티팩트 스트리밍은 시작 시 필요한 경우 파일 시스템에서 무거운 이미지를 읽는 데 적합하지 않습니다. 아티팩트 스트리밍을 사용하면 Pod 시작이 동시에 시작되는 반면, 그렇지 않으면 Pod가 직렬로 시작됩니다.

이 문서에서는 AKS 노드 풀에서 아티팩트 스트리밍 기능을 사용하도록 설정하여 ACR에서 아티팩트를 스트리밍하는 방법을 설명합니다.

Important

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

필수 조건

참고 항목

아티팩트 스트리밍은 Ubuntu 22.04, Ubuntu 20.04 및 Azure Linux 노드 풀에서만 지원됩니다. Windows 노드 풀은 지원되지 않습니다.

aks-preview CLI 확장 설치

  1. az extension add 명령을 사용하여 aks-preview CLI 확장을 설치합니다.

    az extension add --name aks-preview
    
  2. az extension update 명령을 사용하여 최신 버전이 설치되어 있는지 확인하려면 확장을 업데이트합니다.

    az extension update --name aks-preview
    

구독에 ArtifactStreamingPreview 기능 플래그를 등록합니다.

  • az feature register 명령을 사용하여 구독에 ArtifactStreamingPreview 기능 플래그를 등록합니다.

    az feature register --namespace Microsoft.ContainerService --name ArtifactStreamingPreview
    

ACR에서 아티팩트 스트리밍 사용

ACR 사용은 AKS에서 아티팩트 스트리밍을 위한 필수 구성 요소입니다. 자세한 내용은 ACR의 아티팩트 스트리밍을 참조하세요.

  1. az group create 명령을 사용하여 ACR 인스턴스를 보관할 Azure 리소스 그룹을 만듭니다.

    az group create --name myStreamingTest --location westus
    
  2. --sku Premium 플래그와 함께 az acr create 명령을 사용하여 새 프리미엄 SKU Azure Container Registry를 만듭니다.

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. az configure 명령을 사용하여 구독에 대한 기본 ACR 인스턴스를 구성합니다.

    az configure --defaults acr="mystreamingtest"
    
  4. az acr import 명령을 사용하여 이미지를 레지스트리로 푸시하거나 가져옵니다.

    az acr import --source docker.io/jupyter/all-spark-notebook:latest -t jupyter/all-spark-notebook:latest
    
  5. az acr artifact-streaming create 명령을 사용하여 이미지에서 스트리밍 아티팩트를 만듭니다.

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. az acr manifest list-referrers 명령을 사용하여 생성된 아티팩트 스트리밍을 확인합니다.

    az acr manifest list-referrers -n jupyter/all-spark-notebook:latest
    

AKS에서 아티팩트 스트리밍 사용

새 노드 풀에서 아티팩트 스트리밍 사용

  • --enable-artifact-streaming과 함께 az aks nodepool add 명령을 사용하여 아티팩트 스트리밍이 사용하도록 설정된 새 노드 풀을 만듭니다.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myNodePool \
        --enable-artifact-streaming
    

기존 노드 풀에서 아티팩트 스트리밍 사용

  • --enable-artifact-streaming과 함께 az aks nodepool update 명령을 사용하여 아티팩트 스트리밍을 사용하도록 설정하도록 기존 노드 풀을 업데이트합니다.

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myNodePool \
        --enable-artifact-streaming
    

아티팩트 스트리밍이 사용하도록 설정되어 있는지 확인합니다.

이제 프리미엄 ACR에서 아티팩트 스트리밍을 사용하도록 설정하고 이를 아티팩트 스트리밍이 사용하도록 설정된 AKS 노드 풀에 연결했으므로 아티팩트 스트리밍이 사용하도록 설정된 ACR에서 이미지를 끌어오는 이 클러스터의 모든 새 Pod 배포에서는 이미지 끌어오기 시간이 단축됩니다.

  • az aks nodepool show 명령을 사용하여 노드 풀에 아티팩트 스트리밍이 사용하도록 설정되어 있는지 확인합니다.

    az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --name myNodePool --query artifactStreamingProfile
    

    출력에서 Enabled 필드가 true로 설정되어 있는지 확인합니다.

다음 단계

이 문서에서는 AKS 노드 풀에서 아티팩트 스트리밍을 사용하도록 설정하여 ACR에서 아티팩트를 스트리밍하고 이미지 끌어오기 시간을 줄이는 방법을 설명했습니다. AKS에서 컨테이너 이미지 작업에 대해 자세히 알아보려면 AKS의 컨테이너 이미지 관리 및 보안 우수 사례를 참조하세요.