아티팩트 캐시 - 개요

아티팩트 캐시 기능을 사용하면 사용자가 프라이빗 컨테이너 레지스트리에서 컨테이너 이미지를 캐시할 수 있습니다. 아티팩트 캐시는 기본, 표준프리미엄서비스 계층으로 제공됩니다.

이 문서는 6부로 구성된 자습서 시리즈 중 1부입니다. 이 자습서에서는 다음 내용을 다룹니다.

  1. 아티팩트 캐시
  2. 아티팩트 캐시 사용 - Azure Portal
  3. 인증을 사용하여 아티팩트 캐시 사용 - Azure Portal
  4. 아티팩트 캐시 사용 - Azure CLI
  5. 인증을 사용하여 아티팩트 캐시 사용 - Azure CLI
  6. 아티팩트 캐시 문제 해결 가이드

아티팩트 캐시

아티팩트 캐시를 사용하면 공용 및 프라이빗 리포지토리에서 컨테이너 이미지를 캐시할 수 있습니다.

아티팩트 캐시를 구현하면 다음과 같은 이점이 있습니다.

보다 신뢰할 수 있는 끌어오기 작업: ACR에서 컨테이너 이미지를 캐싱하면 컨테이너 이미지를 더 빠르게 끌어올 수 있습니다. Microsoft가 Azure 네트워크를 관리하므로 고객에게 지리적 복제 및 가용성 영역 지원을 제공하여 끌어오기 작업이 더 빨라집니다.

개인 네트워크: 캐시된 레지스트리는 개인 네트워크에서 사용할 수 있습니다. 따라서 사용자는 준수 표준을 충족하도록 방화벽을 구성할 수 있습니다.

업스트림 콘텐츠 제공 보장: 모든 레지스트리, 특히 Docker Hub와 같은 공용 레지스트리에는 모든 사람에게 서비스를 제공할 수 있도록 익명 끌어오기 제한이 있습니다. 아티팩트 캐시를 사용하면 사용자는 업스트림 레지스트리 대신 로컬 ACR에서 이미지를 끌어올 수 있습니다. 아티팩트 캐시는 업스트림에서 콘텐츠 배달을 보장하며 사용자는 끌어오기 제한을 계산하지 않고 캐시에서 컨테이너 이미지를 끌어오는 이점을 가져옵니다.

용어

  • 캐시 규칙 - 캐시 규칙은 지원되는 리포지토리의 아티팩트를 캐시로 끌어오기 위해 만들 수 있는 규칙입니다.

    • 캐시 규칙은 네 부분으로 구성됩니다.

      1. 규칙 이름 - 캐시 규칙의 이름입니다. 예: Hello-World-Cache.

      2. 원본 - 원본 레지스트리의 이름입니다.

      3. 리포지토리 경로 - 캐시하려는 아티팩트를 찾고 검색하기 위한 리포지토리의 원본 경로입니다. 예: docker.io/library/hello-world.

      4. 새 ACR 리포지토리 네임스페이스 - 아티팩트를 저장하기 위한 새 리포지토리 경로의 이름입니다. 예: hello-world. 리포지토리는 ACR 인스턴스 내에 이미 존재할 수 없습니다.

  • 자격 증명

    • 자격 증명은 원본 레지스트리에 대한 사용자 이름과 암호 집합입니다. 공용 또는 프라이빗 리포지토리를 인증하려면 자격 증명이 필요합니다. 자격 증명은 네 부분으로 구성됩니다.

      1. 자격 증명 - 자격 증명의 이름입니다.

      2. 원본 레지스트리 로그인 서버 - 원본 레지스트리의 로그인 서버입니다.

      3. 원본 인증 - 자격 증명을 저장할 키 자격 증명 모음 위치입니다.

      4. 사용자 이름 및 암호 비밀 - 사용자 이름과 암호가 포함된 비밀입니다.

제한 사항

  • 캐시는 사용 가능한 컨테이너 이미지에서 하나 이상의 이미지 끌어오기가 완료된 후에만 발생합니다. 사용 가능한 모든 새 이미지에 대해 새 이미지 끌어오기가 완료되어야 합니다. 아티팩트 캐시는 새 태그를 사용할 수 있을 때 이미지의 새 태그를 자동으로 끌어오지 않습니다. 로드맵에는 있지만 이번 릴리스에서는 지원되지 않습니다.

  • 아티팩트 캐시는 1000개의 캐시 규칙만 지원합니다.

업스트림 지원

아티팩트 캐시는 현재 다음 업스트림 레지스트리를 지원합니다.

업스트림 레지스트리 지원 가용성
Docker Hub 인증된 끌어오기와 인증되지 않은 끌어오기를 모두 지원합니다. Azure CLI, Azure Portal
Microsoft 아티팩트 레지스트리 인증되지 않은 끌어오기만 지원합니다. Azure CLI, Azure Portal
ECR 공용 인증되지 않은 끌어오기만 지원합니다. Azure CLI, Azure Portal
GitHub Container Registry 인증된 끌어오기와 인증되지 않은 끌어오기를 모두 지원합니다. Azure CLI, Azure Portal
Nvidia 인증된 끌어오기와 인증되지 않은 끌어오기를 모두 지원합니다. Azure CLI
Quay 인증된 끌어오기와 인증되지 않은 끌어오기를 모두 지원합니다. Azure CLI, Azure Portal
registry.k8s.io 인증된 끌어오기와 인증되지 않은 끌어오기를 모두 지원합니다. Azure CLI
Google 컨테이너 레지스트리 인증된 끌어오기와 인증되지 않은 끌어오기를 모두 지원합니다. Azure CLI

와일드카드

와일드카드는 별표(*)를 사용하여 컨테이너 이미지 레지스트리 내의 여러 경로를 일치시킵니다. 아티팩트 캐시는 현재 다음 와일드카드를 지원합니다.

참고 항목

대상 리포지토리 => 원본 리포지토리의 캐시 규칙 매핑입니다.

레지스트리 수준 와일드카드

레지스트리 수준 와일드카드를 사용하면 업스트림 레지스트리의 모든 리포지토리를 캐시할 수 있습니다.

캐시 규칙 매핑 예시
contoso.azurecr.io/* => mcr.microsoft.com/* ACR의 모든 이미지를 MCR로 매핑합니다. contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1
contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2

리포지토리 수준 와일드카드

리포지토리 수준 와일드카드를 사용하면 업스트림 레지스트리 매핑에서 리포지토리 접두사로 모든 리포지토리를 캐시할 수 있습니다.

캐시 규칙 매핑 예시
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* ACR의 특정 리포지토리를 MCR의 해당 리포지토리에 매핑합니다. contoso.azurecr.io/dotnet/sdk => mcr.microsoft.com/dotnet/sdk
contoso.azurecr.io/dotnet/runtime => mcr.microsoft.com/dotnet/runtime
contoso.azurecr.io/library/dotnet/* => mcr.microsoft.com/dotnet/*
contoso.azurecr.io/library/python/* => docker.io/library/python/*
ACR의 특정 리포지토리를 다양한 업스트림 레지스트리의 리포지토리에 매핑합니다. contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1
contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3

와일드카드 기반 캐시 규칙의 제한 사항

와일드카드 캐시 규칙은 별표(*)를 사용하여 컨테이너 이미지 레지스트리 내의 여러 경로를 일치시킵니다. 이러한 규칙은 다른 와일드카드 캐시 규칙과 겹칠 수 없습니다. 즉, 특정 레지스트리 경로에 대한 와일드카드 캐시 규칙이 있는 경우 이와 겹치는 다른 와일드카드 규칙을 추가할 수 없습니다.

다음은 중복되는 규칙의 몇 가지 예입니다.

예제 1:

기존 캐시 규칙: contoso.azurecr.io/* => mcr.microsoft.com/*
새 캐시 추가 중: contoso.azurecr.io/library/* => docker.io/library/*

대상 리포지토리 경로 contoso.azurecr.io/library/*가 기존 와일드카드 규칙 contoso.azurecr.io/*와 겹치기 때문에 새 캐시 규칙 추가가 차단됩니다.

예 2:

기존 캐시 규칙: contoso.azurecr.io/library/* =>mcr.microsoft.com/library/*
새 캐시 추가 중: contoso.azurecr.io/library/dotnet/* =>docker.io/library/dotnet/*

대상 리포지토리 경로 contoso.azurecr.io/library/dotnet/*가 기존 와일드카드 규칙 contoso.azurecr.io/library/*와 겹치기 때문에 새 캐시 규칙 추가가 차단됩니다.

정적/고정 캐시 규칙에 대한 제한 사항

정적 또는 고정 캐시 규칙은 더 구체적이며 와일드카드를 사용하지 않습니다. 와일드카드 기반 캐시 규칙과 겹칠 수 있습니다. 캐시 규칙이 고정 리포지토리 경로를 지정하는 경우 와일드카드 기반 캐시 규칙과 겹칠 수 있습니다.

예제 1:

기존 캐시 규칙: contoso.azurecr.io/* =>mcr.microsoft.com/*
새 캐시 추가 중: contoso.azurecr.io/library/dotnet =>docker.io/library/dotnet

contoso.azurecr.io/library/dotnet은 정적 경로이고 와일드카드 캐시 규칙 contoso.azurecr.io/*와 겹칠 수 있으므로 새 캐시 규칙의 추가가 허용됩니다.

다음 단계

  • Azure Portal을 사용하여 아티팩트 캐시를 사용하도록 설정하려면 다음 문서인 아티팩트 캐시 사용으로 진행합니다.