다음을 통해 공유


빠른 시작: Azure CLI를 사용하여 연결된 레지스트리 만들기

이 빠른 시작에서는 Azure CLI를 사용하여 Azure에서 연결된 레지스트리 리소스를 만듭니다. Azure Container Registry의 연결된 레지스트리 기능을 사용하면 레지스트리를 원격으로 또는 온-프레미스에서 배포하고 이미지 및 기타 아티팩트를 클라우드 레지스트리와 동기화할 수 있습니다.

여기에서 클라우드 레지스트리에 대해 두 개의 연결된 레지스트리 리소스를 만듭니다. 그 중 하나는 읽기 및 쓰기(아티팩트 풀 및 푸시) 기능을 허용하고, 다른 하나는 읽기 전용 기능을 허용합니다.

연결된 레지스트리를 만든 후 다른 가이드에 따라 온-프레미스 또는 원격 인프라에서 배포하고 사용할 수 있습니다.

사전 요구 사항

  • Azure Container Registry - 컨테이너 레지스트리가 아직 없는 경우 연결된 레지스트리를 지원하는 지역하나를 만듭니다(프리미엄 계층 필요).

클라우드 레지스트리에 대한 전용 데이터 엔드포인트 사용

az acr update 명령을 사용하여 클라우드의 Azure Container Registry에 대해 전용 데이터 엔드포인트를 사용합니다. 이 단계는 연결된 레지스트리가 클라우드 레지스트리와 통신하는 데 필요합니다.

# Set the REGISTRY_NAME environment variable to identify the existing cloud registry
REGISTRY_NAME=<container-registry-name>

az acr update --name $REGISTRY_NAME \
  --data-endpoint-enabled

클라우드 레지스트리로 이미지 가져오기

az acr import 명령을 사용하여 클라우드 레지스트리로 다음 컨테이너 이미지를 가져옵니다. 이러한 이미지를 이미 가져온 경우에는 이 단계를 건너뜁니다.

연결된 레지스트리 이미지

중첩된 IoT Edge 시나리오를 지원하려면 연결된 레지스트리 런타임에 대한 컨테이너 이미지를 프라이빗 Azure 컨테이너 레지스트리에서 사용할 수 있어야 합니다. az acr import 명령을 사용하여 연결된 레지스트리 이미지를 프라이빗 레지스트리로 가져옵니다.

# Use the REGISTRY_NAME variable in the following Azure CLI commands to identify the registry
REGISTRY_NAME=<container-registry-name>

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/acr/connected-registry:0.8.0

IoT Edge 및 API 프록시 이미지

중첩된 IoT Edge에서 연결된 레지스트리를 지원하려면 IoT Edge 및 API 프록시용 모듈을 배포해야 합니다. 이러한 이미지를 프라이빗 레지스트리로 가져옵니다.

IoT Edge API 프록시 모듈을 사용하면 IoT Edge 디바이스에서 443과 같은 동일한 포트에서 HTTPS 프로토콜을 사용하여 여러 서비스를 노출할 수 있습니다.

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/azureiotedge-agent:1.2.4

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/azureiotedge-hub:1.2.4

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/azureiotedge-api-proxy:1.1.2

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/azureiotedge-diagnostics:1.2.4

Hello-world 이미지

연결된 레지스트리를 테스트하려면 hello-world 이미지를 가져옵니다. 이 리포지토리는 연결된 레지스트리에 동기화되며 연결된 레지스트리 클라이언트에서 가져옵니다.

az acr import \
  --name $REGISTRY_NAME \
  --source mcr.microsoft.com/hello-world:1.1.2

읽기 및 쓰기 기능을 위한 연결된 레지스트리 리소스 만들기

az acr connected-registry create 명령을 사용하여 연결된 레지스트리를 만듭니다. 연결된 레지스트리 이름은 문자로 시작해야 하며 영숫자 문자만 포함해야 합니다. 길이는 5~40자여야 하며 이 Azure 컨테이너 레지스트리의 계층 구조에서 고유해야 합니다.

# Set the CONNECTED_REGISTRY_RW environment variable to provide a name for the connected registry with read/write functionality
CONNECTED_REGISTRY_RW=<connnected-registry-name>

az acr connected-registry create --registry $REGISTRY_NAME \
  --name $CONNECTED_REGISTRY_RW \
  --repository "hello-world" "acr/connected-registry" "azureiotedge-agent" "azureiotedge-hub" "azureiotedge-api-proxy"

이 명령은 이름이 $CONNECTED_REGISTRY_RW 값인 연결된 레지스트리 리소스를 만들고 이름이 $REGISTRY_NAME 값인 클라우드 레지스트리에 연결합니다. 빠른 시작 가이드 후반부에서는 연결된 레지스트리를 배포하는 옵션에 대해 알아봅니다.

  • 지정된 리포지토리는 배포되면 클라우드 레지스트리와 연결된 레지스트리 간에 동기화됩니다.

  • 연결된 레지스트리에 대해 --mode 옵션이 지정되지 않았기 때문에 기본 ReadWrite 모드에서 만들어집니다.

  • 이 연결된 레지스트리에 대해 정의된 동기화 일정이 없기 때문에 리포지토리는 중단 없이 클라우드 레지스트리와 연결된 레지스트리 간에 동기화됩니다.

    Important

    하위 계층이 인터넷에 액세스할 수 없는 중첩 시나리오를 지원하려면 항상 acr/connected-registry 리포지토리의 동기화를 허용해야 합니다. 이 리포지토리에는 연결된 레지스트리 런타임에 대한 이미지가 포함되어 있습니다.

읽기 전용 기능을 위한 연결된 레지스트리 리소스 만들기

az acr connected-registry create 명령을 사용하여 읽기 전용 기능으로 연결된 레지스트리를 만들 수도 있습니다.

# Set the CONNECTED_REGISTRY_READ environment variable to provide a name for the connected registry with read-only functionality
CONNECTED_REGISTRY_RO=<connnected-registry-name>
az acr connected-registry create --registry $REGISTRY_NAME \
  --parent $CONNECTED_REGISTRY_RW \
  --name $CONNECTED_REGISTRY_RO \
  --repository "hello-world" "acr/connected-registry" "azureiotedge-agent" "azureiotedge-hub" "azureiotedge-api-proxy" \
  --mode ReadOnly

이 명령은 이름이 $CONNECTED_REGISTRY_RO 값인 연결된 레지스트리 리소스를 만들고 이름이 $REGISTRY_NAME 값인 클라우드 레지스트리에 연결합니다.

  • 지정된 레지스트리는 $CONNECTED_REGISTRY_RW 값으로 명명된 부모 레지스트리와 배포된 연결된 레지스트리 간에 동기화됩니다.
  • 이 리소스는 배포된 후 읽기 전용(아티팩트 풀) 기능을 사용하는 ReadOnly 모드에서 만들어집니다.
  • 이 연결된 레지스트리에 대해 정의된 동기화 일정이 없기 때문에 리포지토리는 중단 없이 부모 레지스트리와 연결된 레지스트리 간에 동기화됩니다.

리소스가 만들어지는지 확인합니다.

연결된 레지스트리 az acr connected-registry list 명령을 사용하여 리소스가 만들어졌는지 확인할 수 있습니다.

az acr connected-registry list \
  --registry $REGISTRY_NAME \
  --output table

다음과 같은 응답이 표시되어야 합니다. 연결된 레지스트리가 아직 배포되지 않았기 때문에 "오프라인"의 연결 상태는 현재 클라우드에서 연결이 끊긴 상태임을 나타냅니다.

NAME                 MODE        CONNECTION STATE    PARENT               LOGIN SERVER    LAST SYNC (UTC)
-------------------  --------    ------------------  -------------------  --------------  -----------------
myconnectedregrw    ReadWrite    Offline
myconnectedregro    ReadOnly     Offline             myconnectedregrw

다음 단계

이 빠른 시작에서는 Azure CLI를 사용하여 Azure에서 두 개의 연결된 레지스트리 리소스를 만듭니다. 새로 연결된 레지스트리 리소스는 클라우드 레지스트리에 연결되며 클라우드 레지스트리와 아티팩트를 동기화할 수 있습니다.

연결된 레지스트리 배포 가이드를 계속 진행하여 IoT Edge 인프라에서 연결된 레지스트리를 배포하고 사용하는 방법을 알아봅니다.