아티팩트 캐시 - 개요
아티팩트 캐시 기능을 사용하면 사용자가 프라이빗 컨테이너 레지스트리에서 컨테이너 이미지를 캐시할 수 있습니다. 아티팩트 캐시는 기본, 표준 및 프리미엄서비스 계층으로 제공됩니다.
이 문서는 6부로 구성된 자습서 시리즈 중 1부입니다. 이 자습서에서는 다음 내용을 다룹니다.
- 아티팩트 캐시
- 아티팩트 캐시 사용 - Azure Portal
- 인증을 사용하여 아티팩트 캐시 사용 - Azure Portal
- 아티팩트 캐시 사용 - Azure CLI
- 인증을 사용하여 아티팩트 캐시 사용 - Azure CLI
- 아티팩트 캐시 문제 해결 가이드
아티팩트 캐시
아티팩트 캐시를 사용하면 공용 및 프라이빗 리포지토리에서 컨테이너 이미지를 캐시할 수 있습니다.
아티팩트 캐시를 구현하면 다음과 같은 이점이 있습니다.
보다 신뢰할 수 있는 끌어오기 작업: ACR에서 컨테이너 이미지를 캐싱하면 컨테이너 이미지를 더 빠르게 끌어올 수 있습니다. Microsoft가 Azure 네트워크를 관리하므로 고객에게 지리적 복제 및 가용성 영역 지원을 제공하여 끌어오기 작업이 더 빨라집니다.
개인 네트워크: 캐시된 레지스트리는 개인 네트워크에서 사용할 수 있습니다. 따라서 사용자는 준수 표준을 충족하도록 방화벽을 구성할 수 있습니다.
업스트림 콘텐츠 제공 보장: 모든 레지스트리, 특히 Docker Hub와 같은 공용 레지스트리에는 모든 사람에게 서비스를 제공할 수 있도록 익명 끌어오기 제한이 있습니다. 아티팩트 캐시를 사용하면 사용자는 업스트림 레지스트리 대신 로컬 ACR에서 이미지를 끌어올 수 있습니다. 아티팩트 캐시는 업스트림에서 콘텐츠 배달을 보장하며 사용자는 끌어오기 제한을 계산하지 않고 캐시에서 컨테이너 이미지를 끌어오는 이점을 가져옵니다.
용어
캐시 규칙 - 캐시 규칙은 지원되는 리포지토리의 아티팩트를 캐시로 끌어오기 위해 만들 수 있는 규칙입니다.
캐시 규칙은 네 부분으로 구성됩니다.
규칙 이름 - 캐시 규칙의 이름입니다. 예:
Hello-World-Cache
.원본 - 원본 레지스트리의 이름입니다.
리포지토리 경로 - 캐시하려는 아티팩트를 찾고 검색하기 위한 리포지토리의 원본 경로입니다. 예:
docker.io/library/hello-world
.새 ACR 리포지토리 네임스페이스 - 아티팩트를 저장하기 위한 새 리포지토리 경로의 이름입니다. 예:
hello-world
. 리포지토리는 ACR 인스턴스 내에 이미 존재할 수 없습니다.
자격 증명
자격 증명은 원본 레지스트리에 대한 사용자 이름과 암호 집합입니다. 공용 또는 프라이빗 리포지토리를 인증하려면 자격 증명이 필요합니다. 자격 증명은 네 부분으로 구성됩니다.
자격 증명 - 자격 증명의 이름입니다.
원본 레지스트리 로그인 서버 - 원본 레지스트리의 로그인 서버입니다.
원본 인증 - 자격 증명을 저장할 키 자격 증명 모음 위치입니다.
사용자 이름 및 암호 비밀 - 사용자 이름과 암호가 포함된 비밀입니다.
제한 사항
캐시는 사용 가능한 컨테이너 이미지에서 하나 이상의 이미지 끌어오기가 완료된 후에만 발생합니다. 사용 가능한 모든 새 이미지에 대해 새 이미지 끌어오기가 완료되어야 합니다. 아티팩트 캐시는 새 태그를 사용할 수 있을 때 이미지의 새 태그를 자동으로 끌어오지 않습니다. 로드맵에는 있지만 이번 릴리스에서는 지원되지 않습니다.
아티팩트 캐시는 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을 사용하여 아티팩트 캐시를 사용하도록 설정하려면 다음 문서인 아티팩트 캐시 사용으로 진행합니다.