큰 컨테이너 이미지는 이미지 끌어오기 시간을 늘리고 워크로드 배포를 지연할 수 있습니다. 아티팩트 스트리밍을 사용하면 컨테이너 이미지를 ACR(Azure Container Registry)에서 AKS(Azure Kubernetes Service) 스트리밍할 수 있습니다. AKS는 초기 Pod 시작에 필요한 계층만 끌어오기 때문에 워크로드를 배포하는 데 걸리는 시간이 줄어듭니다.
이 문서에서는 AKS 노드 풀에서 아티팩트 스트리밍 기능을 사용하거나 사용하지 않도록 설정하여 ACR에서 아티팩트를 스트리밍하는 방법을 설명합니다.
필수 조건
- Azure 구독입니다. Azure 구독이 없는 경우 무료 계정을 만들 수 있습니다.
- ACR에서 아티팩트 스트리밍을 사용하도록 설정합니다.
- Azure CLI 버전 2.87.0 이상.
az --version를 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요. - 이 기능을 사용하려면 Kubernetes 버전 1.25 이상이 필요합니다. AKS 클러스터 버전을 확인하려면 사용 가능한 AKS 클러스터 업그레이드 확인을 참조하세요.
- ACR 통합을 사용하는 기존 AKS 클러스터입니다. 계정이 없으면 AKS에서 ACR로 인증을 사용하여 만들 수 있습니다.
- 노드 풀 구성을 수정하려면 Azure Kubernetes Service 기여자 역할이 필요합니다.
제한점
- Linux AMD64 아키텍처가 있는 이미지만 지원됩니다.
- Windows 기반 컨테이너 이미지 및 ARM64 이미지는 지원되지 않습니다.
- 다중 아키텍처 이미지에는 AMD64 아키텍처만 지원됩니다.
- AKS의 Ubuntu 기반 노드 풀은 Ubuntu 버전 20.04 이상을 사용해야 합니다.
- 프리미엄 SKU ACR 레지스트리만 지원됩니다.
- CMK (고객 관리형 키) 레지스트리는 지원되지 않습니다.
- Kubernetes(예:
regcredKubernetesimagePullSecrets)는 지원되지 않습니다. Entra가 아닌 범위 매핑 토큰 자격 증명 또는 ACR 관리자 사용자 자격 증명을 사용한 ACR 이미지 끌어오기는, 노드 풀과 이미지 모두 스트리밍이 사용하도록 설정되어 있더라도 기본적으로 아티팩트 스트리밍이 아닌 방식으로 수행됩니다. - 아티팩트 스트리밍은 태그별 이미지 끌어오기만 지원합니다. 아티팩트 스트리밍은 태그 기반 이미지 가져오기 요청을 해당 이미지의 스트리밍 변형으로 확인하여 작동합니다. 다이제스트에서 이미지 끌어오기 작업을 수행하는 경우 아티팩트 스트리밍을 사용할 수 없습니다.
ACR에서 아티팩트 스트리밍 사용
az group create명령을 사용하여 ACR 인스턴스를 보관할 Azure 리소스 그룹을 만듭니다.az group create --name myStreamingTest --location westusaz acr create명령을 사용하여--sku Premium플래그로 새 Premium SKU ACR을 생성합니다.az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premiumaz configure명령을 사용하여 구독에 대한 기본 ACR 인스턴스를 구성합니다.az configure --defaults acr="mystreamingtest"az acr import명령을 사용하여 이미지를 레지스트리로 푸시하거나 가져옵니다.az acr import --source docker.io/jupyter/all-spark-notebook --repository jupyter/all-spark-notebookaz acr artifact-streaming create명령을 사용하여 이미지에서 스트리밍 아티팩트를 만듭니다.az acr artifact-streaming create --image jupyter/all-spark-notebook:latestaz acr manifest list-referrers명령을 사용하여 생성된 아티팩트 스트리밍을 확인합니다.az acr manifest list-referrers --name jupyter/all-spark-notebook:latest
AKS에서 아티팩트 스트리밍 사용
ACR 통합을 사용하여 AKS 클러스터의 새 노드 풀 또는 기존 노드 풀에서 아티팩트 스트리밍을 사용하도록 설정할 수 있습니다.
주석
AKS 클러스터와 통합된 프리미엄 계층 ACR이 없는 경우 AKS에서 아티팩트 스트리밍을 사용할 수 없습니다.
주석
NAP(노드 자동 프로비저닝)가 사용하도록 설정된 클러스터는 AKSNodeClass CRD 필드를 사용하여 spec.artifactStreaming.enabled 아티팩트 스트리밍을 사용하도록 설정할 수 있습니다. 이 AKSNodeClass CRD와 연결된 새 노드 또는 기존 NAP 관리 노드에 아티팩트 스트리밍을 사용하도록 설정하려면 이 필드를 true 설정합니다.
새 노드 풀에서 아티팩트 스트리밍 사용
az aks nodepool add 플래그를 사용하여 --enable-artifact-streaming 명령으로 아티팩트 스트리밍을 사용하도록 설정된 새 AKS 노드 풀을 만듭니다.
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--enable-artifact-streaming
기존 노드 풀에서 아티팩트 스트리밍 사용
az aks nodepool update 플래그와 함께 --enable-artifact-streaming 명령을 사용하여 기존 AKS 노드 풀에서 아티팩트 스트리밍을 사용하도록 설정합니다.
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--enable-artifact-streaming
기존 노드 풀에서 아티팩트 스트리밍 사용 안 함
az aks nodepool update 플래그와 함께 --disable-artifact-streaming 명령을 사용하여 기존 AKS 노드 풀에서 아티팩트 스트리밍을 비활성화합니다.
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--disable-artifact-streaming
아티팩트 스트리밍 사용 상태 확인
az aks nodepool show 명령에서 --query 플래그를 artifactStreamingProfile(으)로 설정하여 AKS 노드 풀에서 아티팩트 스트리밍이 사용하도록 설정되어 있는지 확인합니다.
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--query artifactStreamingProfile
출력에서 Enabled 필드를 확인합니다.
true 는 아티팩트 스트리밍이 사용하도록 설정되어 있으며 false 아티팩트 스트리밍을 사용하지 않도록 설정되었음을 의미합니다.
관련 콘텐츠
이 문서에서는 AKS 노드 풀에서 아티팩트 스트리밍을 사용하거나 사용하지 않도록 설정하여 ACR에서 아티팩트를 스트리밍하고 배포 시간을 줄이는 방법을 설명합니다. AKS에서 컨테이너 이미지 작업에 대해 자세히 알아보려면 AKS의 컨테이너 이미지 관리 및 보안 우수 사례를 참조하세요.