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 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.
필수 조건
- ACR 통합이 포함된 기존 AKS 클러스터가 필요합니다. 계정이 없으면 AKS에서 ACR로 인증을 사용하여 만들 수 있습니다.
- ACR에서 아티팩트 스트리밍을 사용하도록 설정합니다.
- 이 기능을 사용하려면 Kubernetes 버전 1.25 이상이 필요합니다. AKS 클러스터 버전을 확인하려면 사용 가능한 AKS 클러스터 업그레이드 확인을 참조하세요.
참고 항목
아티팩트 스트리밍은 Ubuntu 22.04, Ubuntu 20.04 및 Azure Linux 노드 풀에서만 지원됩니다. Windows 노드 풀은 지원되지 않습니다.
aks-preview
CLI 확장 설치
az extension add
명령을 사용하여aks-preview
CLI 확장을 설치합니다.az extension add --name aks-preview
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의 아티팩트 스트리밍을 참조하세요.
az group create
명령을 사용하여 ACR 인스턴스를 보관할 Azure 리소스 그룹을 만듭니다.az group create --name myStreamingTest --location westus
--sku Premium
플래그와 함께az acr create
명령을 사용하여 새 프리미엄 SKU Azure Container Registry를 만듭니다.az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
az configure
명령을 사용하여 구독에 대한 기본 ACR 인스턴스를 구성합니다.az configure --defaults acr="mystreamingtest"
az acr import
명령을 사용하여 이미지를 레지스트리로 푸시하거나 가져옵니다.az acr import --source docker.io/jupyter/all-spark-notebook:latest --repository jupyter/all-spark-notebook:latest
az acr artifact-streaming create
명령을 사용하여 이미지에서 스트리밍 아티팩트를 만듭니다.az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
az acr manifest list-referrers
명령을 사용하여 생성된 아티팩트 스트리밍을 확인합니다.az acr manifest list-referrers --name 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의 컨테이너 이미지 관리 및 보안 우수 사례를 참조하세요.
Azure Kubernetes Service