이 문서에서는 ACR(Azure Container Registry)을 사용하여 AKS(Azure Kubernetes Service) 아티팩트 스트리밍에 대한 개요를 제공합니다. 아티팩트 스트리밍은 컨테이너 이미지를 ACR에서 AKS로 스트리밍하므로 초기 Pod 시작에 필요한 계층만 끌어옵니다. 이 기능은 워크로드를 배포하는 데 걸리는 시간을 줄입니다.
아티팩트 스트리밍은 어떻게 작동하나요?
표준 컨테이너 시작에서 Kubernetes는 워크로드가 시작되기 전에 모든 이미지 계층을 다운로드합니다. 이 프로세스는 큰 이미지 또는 여러 Pod를 시작할 때 시간이 걸릴 수 있습니다.
AKS의 아티팩트 스트리밍은 초기 Pod 시작에 필요한 계층만 검색하여 이 동작을 변경합니다. 런타임은 필요에 따라 나중에 나머지 데이터를 검색합니다. 이 기능은 컨테이너 이미지 계층을 가상 블록 디바이스로 변환하는 OverlayBD를 사용합니다. 런타임은 전체 이미지를 다운로드하는 대신 블록 수준에서 데이터에 액세스할 수 있습니다. 이 방법을 사용하면 시작 및 런타임 중에 액세스되는 블록만 검색합니다. 애플리케이션에서 이미지의 일부만 사용하는 경우 해당 부분만 끌어오게됩니다.
메모
AKS의 아티팩트 스트리밍은 태그별 이미지 끌어오기만 지원합니다.
아티팩트 스트리밍은 태그 기반 이미지 가져오기 요청을 해당 이미지의 스트리밍 변형으로 확인하여 작동합니다. 이미지 풀에 다이제스트를 사용하는 경우 아티팩트 스트리밍을 사용할 수 없습니다.
이점 및 사용 사례
AKS에서 아티팩트 스트리밍을 사용하면 다음을 수행할 수 있습니다.
- 여러 지역에 컨테이너화된 애플리케이션 배포: 단일 Azure 컨테이너 레지스트리에서 다른 지역의 AKS 클러스터로 컨테이너 이미지를 스트리밍합니다. 이 방법을 사용하면 이미지를 복제하는 데 필요한 시간과 리소스가 줄어듭니다.
- Pod 준비 시간 단축: 전체 이미지를 다운로드하기 전에 Pod를 시작하면 Pod 준비 시간을 줄일 수 있습니다(특히 큰 이미지의 경우).
- 크기 조정 효율성 향상: 여러 Pod를 만들거나 크기를 조정할 때 시작 지연을 줄여 대규모 배포를 지원합니다.
- 큰 이미지에 대한 시작 최적화: 컨테이너화된 상태 저장 워크로드(예: Java 또는 C# 애플리케이션) 또는 Pod 시작 시 즉시 필요하지 않은 이미지에 연결된 종속성이 있는 워크로드와 같이 시작 시 모든 이미지 계층이 필요하지 않은 워크로드의 초기화 시간을 개선합니다.
Considerations
AKS에서 아티팩트 스트리밍을 사용할 때는 다음 사항을 고려해야 합니다.
- 시작 시 파일을 읽어야 하는 읽기가 많은 이미지는 아티팩트 스트리밍의 이점을 누릴 수 없습니다. 큰 파일(30GB)>에 액세스해야 하는 Pod가 있는 경우 레이어로 빌드하는 대신 볼륨으로 탑재합니다. Pod에서 해당 파일을 시작해야 하는 경우 노드가 혼잡합니다.
- 새 또는 기존 컨테이너 레지스트리에서 특정 리포지토리 또는 태그에 대한 아티팩트 스트리밍을 시작할 수 있습니다.
- 아티팩트 스트리밍을 시작하여 ACR에 원본 아티팩트와 스트리밍 아티팩트를 모두 저장할 수 있습니다.
- 리포지토리 또는 아티팩트용 아티팩트 스트리밍을 해제한 후에도 원본 및 스트리밍 아티팩트에 액세스할 수 있습니다.
- 아티팩트 스트리밍 및 일시 삭제를 사용하도록 설정하고 리포지토리 또는 아티팩트를 삭제하면 원본 및 아티팩트 스트리밍 버전이 모두 삭제됩니다. 그러나 원래 버전만 일시 삭제 포털에서 사용할 수 있습니다.
관련 콘텐츠
AKS에서 아티팩트 스트리밍 사용을 시작하려면 ACR(Azure Container Registry)을 사용하여 AKS(Azure Kubernetes Service) 아티팩트 스트리밍 사용을 참조하세요.