배포 레이블을 사용하면 개발, 스테이징 또는 prod와 같은 의미 있는 이름을 특정 컨테이너 수정 버전에 할당할 수 있습니다. 이러한 이름을 적용하면 복잡한 배포 시나리오 및 환경 관리 처리를 간소화할 수 있습니다.
배포 레이블을 사용하여 다음을 수행할 수 있습니다.
- 명확하고 설명이 포함된 레이블을 수정 버전에 할당합니다.
- 라우팅 및 트래픽 관리를 위해 레이블에 새 수정 버전을 자동으로 할당합니다.
- 수정 이름을 변경하는 대신 레이블에 따라 트래픽을 라우팅합니다.
- 레이블을 재할당하여 수정 버전을 승격하거나 강등하십시오.
- 레이블 기록을 사용하여 이전 수정 버전으로 롤백합니다.
중요합니다
배포 레이블을 사용하려면 먼저 단계에 따라 컨테이너 앱에 대한 포털에서 배포 레이블을 사용하도록 설정 해야 합니다.
주요 기능
배포 레이블을 사용하면 다음 기능을 사용하여 애플리케이션 수명 주기를 제어하면서 정교한 배포 전략을 만들 수 있습니다.
레이블 할당: 컨테이너 수정 버전에 의미 있는 레이블을 만들고 할당하여 개발, 스테이징 및 prod와 같은 환경을 보다 쉽게 관리할 수 있습니다.
트래픽 분할 및 A/B 테스트: 트래픽 분할, 블라인드 롤백 및 A/B 테스트를 지원하면 새로운 기능을 점진적으로 출시하고 테스트할 수 있습니다.
스테이징 릴리스 및 자동 교환: 자동 리비전 활성화를 사용하면 새 리비전을 원활하게 생성하고 이를 새 레이블 또는 기존 레이블에 할당하여 트래픽을 원활하게 받을 수 있습니다. 레이블에서 더 이상 참조하지 않는 수정 버전은 자동으로 종료됩니다.
배포 레이블 사용
기본적으로 배포 레이블은 컨테이너 앱에서 사용할 수 없습니다. 배포 레이블을 사용하도록 설정하려면 Azure Portal에서 다음 단계를 수행합니다.
Azure Portal에서 컨테이너 앱을 엽니다.
메뉴의 애플리케이션 섹션에서 수정 버전 및 복제본을 선택합니다.
배포 모드를 선택합니다.
배포 레이블 열을 선택합니다.
적용을 선택합니다.
새 레이블 만들기
포털에서 기존 레이블을 기반으로 새 레이블을 만듭니다. 기본적으로 Container Apps는 label-1이라는 첫 번째 레이블을 만듭니다. CLI 또는 Bicep을 통해 레이블을 만들 때 기존 수정 버전 또는 새 수정 버전과 연결할 수 있습니다.
Azure Portal에서 컨테이너 앱을 엽니다.
메뉴의 애플리케이션 섹션에서 레이블을 선택합니다.
새 레이블을 선택합니다.
새 레이블을 기반으로 하려는 기존 레이블을 선택합니다.
텍스트 상자에 새 레이블 이름을 입력합니다.
복제를 선택합니다.
레이블 기록 및 롤백
다음 단계를 사용하여 레이블의 전체 기록을 볼 수 있습니다.
Azure Portal에서 컨테이너 앱을 엽니다.
메뉴의 애플리케이션에서 레이블을 선택합니다.
관심 있는 레이블의 기록 표시 를 선택합니다.
레이블에 기록 표시 옵션을 사용하여 다음을 수행합니다.
- 레이블의 수정 기록을 검토합니다.
- 다른 컨테이너 수정 버전을 레이블로 지정하여 이전 수정 버전으로 롤백합니다.
배포 레이블 사용
배포 레이블을 사용하도록 설정하려면 Azure CLI에서 다음 단계를 수행합니다.
터미널을 엽니다.
다음 환경 변수를 만듭니다.
CONTAINER_APP_NAME="my-container-app" CONTAINER_APP_IMAGE="mcr.microsoft.com/k8se/quickstart:latest" LOCATION="centralus" RESOURCE_GROUP="my-container-apps-rg" ENVIRONMENT_NAME="my-container-apps-env" TARGET_LABEL="stage"다음 명령을 사용하여 레이블이 있는 새 앱 및 수정 버전을 만듭니다.
az containerapp create \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --image $CONTAINER_APP_IMAGE \ --environment $ENVIRONMENT_NAME \ --location $LOCATION \ --ingress external \ --target-port 0 \ --revisions-mode labels \ --target-label $TARGET_LABEL새 레이블 또는 기존 레이블을 사용하여 새 수정 버전을 만들려면 다음 명령을 사용합니다.
az containerapp update \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --image $CONTAINER_APP_IMAGE \ --target-label $TARGET_LABEL레이블 기록을 표시하려면 다음 명령을 사용합니다.
az containerapp label-history show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --label $TARGET_LABEL레이블 앱 트래픽을 표시하려면 다음 명령을 사용합니다.
az containerapp ingress traffic show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \수정 버전에 레이블을 추가하려면 다음 명령을 사용합니다.
az containerapp revision label add \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --revision $REVISION_NAME \ --label $TARGET_LABEL수정 버전에서 레이블을 제거하려면 다음 명령을 사용합니다.
az containerapp revision label remove \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --label $TARGET_LABEL
지원되는 시나리오
청록색 배포: 수정 버전 간에 레이블을 지정하고 전환하여 청록색 배포를 쉽게 관리합니다. 이 방법은 전체 환경 교환을 처리하는 간단한 방법을 제공합니다.
A/B 테스트: 기능 테스트를 위해 트래픽의 백분율을 다른 수정 버전으로 전달합니다. 이 방법을 사용하면 전체 배포 전에 사용자의 하위 집합을 사용하여 새 기능의 유효성을 검사할 수 있습니다.
단계적 롤아웃: 트래픽 비율을 조정하여 새 수정 버전으로의 트래픽을 점진적으로 늘입니다.
환경 격리: 레이블을 사용하여 별도의 개발, 스테이징 및 prod 환경을 유지 관리합니다. 명확한 승격 경로를 유지하면서 각 환경을 독립적으로 업데이트할 수 있습니다.
워크플로 예제
배포 레이블을 사용하는 일반적인 워크플로는 다음과 같습니다.
초기 레이블 만들기: 처음에 동일한 수정 버전을 가리키는 "stage" 및 "production"과 같은 레이블을 만듭니다.
레이블 업데이트: 레이블(예: "스테이지")을 선택하여 새 컨테이너, 크기 조정 또는 볼륨 설정으로 업데이트합니다.
변경 내용 테스트: 새 수정 버전이 배포되면 트래픽의 일부를 업데이트된 레이블로 라우팅합니다.
변경 내용 승격: 프로덕션 리비전에 대해 확신이 서면, 프로덕션 레이블을 동일한 리비전을 가리키도록 업데이트합니다.
필요한 경우 모니터링 및 롤백: 문제가 발생하는 경우 레이블 기록을 사용하여 이전 버전으로 롤백합니다.