AOSM(Azure Operator Service Manager) CLI 확장이 Helm 차트 구성을 기반으로 원본 ACR에서 컨테이너 이미지를 발견하는 방법을 알아봅니다.
이 문서에서는 Azure CLI AOSM 확장이 Helm 차트에서 이미지를 발견하고, 컨테이너 레지스트리에서 끌어와서 AOSM 아티팩트 저장소에 업로드하는 방법을 설명합니다. Azure CLI AOSM 확장은 ACR(Azure Container Registry)과 Docker API를 지원하는 모든 Container Registry를 모두 지원합니다.
이미지 검색
az aosm nfd generate-config --definition-type cnf
에서 생성된 Azure CLI AOSM 확장 NFDV(네트워크 기능 정의 버전) 입력 파일에는 컨테이너 이미지 온보딩 중에 AOSM CLI 쿼리가 원본 레지스트리(및 필요에 따라 네임스페이스)를 지정하는 하나의 매개 변수가 포함되어 있습니다.
// List of registries from which to pull the image(s).
// For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
// For non Azure Container Registries, ensure you have run a docker login command before running build.
"image_sources": [],
"image_sources"
는 문자열의 배열입니다. 각 문자열은 컨테이너 레지스트리에 대한 참조이며 선택적으로 해당 레지스트리의 네임스페이스입니다.
Az CLI AOSM 확장:
- 컨테이너 이미지 참조를 발견하기 위해
helm template
에서 생성된 Kubernetes 정의 파일을 구문 분석합니다. - 컨테이너 이미지 참조에 대해 "image_sources" 배열에 포함된 레지스트리 및 네임스페이스를 검색합니다.
- 원본 레지스트리의 이미지를 AOSM 아티팩트 저장소에 복사합니다.
Important
AOSM CLI를 사용하려면 원본 레지스트리의 이미지가 Helm 차트에 작성된 네임스페이스 구조와 일치해야 합니다. 예를 들어, Helm 차트에 core/contoso-a:1.0.0
으로 포함된 이미지는 core/contoso-a:1.0.0
으로 끝나는 경로의 원본 레지스트리에서 사용할 수 있어야 합니다. 추가 접두사는 az aosm nfd generate-config --definition-type cnf
명령으로 생성된 cnf-input.jsonc
파일의 "image_sources"
매개 변수에 포함되어야 합니다.
작업 예제
이 예에서는 가상의 CNF(컨테이너화된 네트워크 기능)를 설명합니다. 이 CNF는 핵심 CNF 함수를 제공하는 세 개의 이미지와 CNF에 대한 테스트 쿼리를 실행하기 위해 배포할 수 있는 하나의 테스트 이미지로 구성됩니다. 이미지의 원본 레지스트리는 myregistry
라는 ACR입니다. 이 예에서는 4개의 이미지를 모두 온보딩합니다.
NFDV 입력 파일의 "image_sources" 필드는 다음과 같이 설정됩니다.
// List of registries from which to pull the image(s).
// For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
// For non Azure Container Registries, ensure you have run a docker login command before running build.
"image_sources": ["myregistry.azurecr.io"],
이 CNF의 Helm 차트에 대한 helm template
출력은 Kubernetes 배포 정의에 4개의 이미지 줄을 제공합니다.
image: repository/release/contoso-a:1.0.0
image: repository/release/contoso-b:1.0.0
image: repository/release/contoso-c:1.0.0
image: repository/test-release/contoso-test:1.0.0
Azure CLI AOSM 확장은 위의 이미지 줄을 가져와서 repository
를 제거합니다(AOSM은 AOSM 아티팩트 저장소를 지원하는 새 레지스트리로 리포지토리를 덮어씀). 그런 다음, Azure CLI AOSM 확장은 myregistry.azurecr.io/release/contoso-a:1.0.0
, myregistry.azurecr.io/release/contoso-b:1.0.0
, myregistry.azurecr.io/release/contoso-c:1.0.0
및 myregistry.azurecr.io/test-release/contoso-test:1.0.0
에서 이미지를 검색합니다. 이미지는 이러한 경로에서 사용할 수 있어야 합니다.
네임스페이스
Azure CLI AOSM 확장은 원본 컨테이너 레지스트리의 이미지 네임스페이스도 지원합니다. 예를 들어, contoso-test
이미지는 원본 레지스트리의 test/test-release/contoso-test:1.0.0
에 업로드될 수 있습니다. 이 경우 NFDV 입력 파일의 "image_sources"
매개 변수에 추가 접두사 test
를 구성해야 합니다.
// List of registries from which to pull the image(s).
// For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
// For non Azure Container Registries, ensure you have run a docker login command before running build.
"image_sources": ["myregistry.azurecr.io", "myregistry.azurecr.io/test"],
Azure AOSM CLI 확장은 myregistry.azurecr.io
에서 이미지를 검색하여 contoso-a
, contoso-b
및 contoso-c
를 찾습니다. 그런 다음 myregistry.azurecr.io/test
에서 검색하여 contoso-test
를 찾습니다.