자습서: Azure Arc 지원 Kubernetes에서 Azure 컨테이너 앱 만들기(미리 보기)
이 자습서에서는 Azure Arc 지원 Kubernetes 클러스터(미리 보기)에 대한 컨테이너 앱을 만들고 다음을 알아봅니다.
- Azure Arc에서 컨테이너 앱 만들기
- 애플리케이션의 진단 보기
필수 조건
컨테이너 앱을 만들기 전에 먼저 Azure Container Apps를 실행하도록 Azure Arc 지원 Kubernetes 클러스터를 설정해야 합니다.
Azure CLI 확장 추가
Azure Cloud Shell에서 Bash 환경을 시작합니다.
다음으로, 필요한 Azure CLI 확장을 추가합니다.
Warning
다음 명령은 퍼블릭 클라우드 서비스에서 사용할 수 없는 사용자 지정 Container Apps 확장을 설치합니다. Azure 퍼블릭 클라우드로 다시 전환하는 경우 확장을 제거해야 합니다.
az extension add --upgrade --yes --name customlocation
az extension add --name containerapp --upgrade --yes
리소스 그룹 만들기
이 자습서에서 만든 서비스에 대한 리소스 그룹을 만듭니다.
GROUP_NAME="my-container-apps-resource-group"
az group create --name $GROUP_NAME --location eastus
사용자 지정 위치 정보 가져오기
클러스터 관리자로부터 다음 위치 그룹, 이름 및 ID를 가져옵니다. 자세한 내용은 사용자 지정 위치 만들기를 참조하세요.
CUSTOM_LOCATION_GROUP="<RESOURCE_GROUP_CONTAINING_CUSTOM_LOCATION>"
CUSTOM_LOCATION_NAME="<NAME_OF_CUSTOM_LOCATION>"
사용자 지정 위치 ID를 가져옵니다.
CUSTOM_LOCATION_ID=$(az customlocation show \
--resource-group $CUSTOM_LOCATION_GROUP \
--name $CUSTOM_LOCATION_NAME \
--query id \
--output tsv)
연결된 환경 ID 검색
이제 사용자 지정 위치 ID가 있으므로 연결된 환경을 쿼리할 수 있습니다.
연결된 환경은 표준 Container Apps 환경과 거의 동일하지만 기본 Arc 지원 Kubernetes 클러스터는 네트워크 제한을 제어합니다.
CONTAINER_APP_NAME="my-container-app"
CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env list --custom-location $CUSTOM_LOCATION_ID -o tsv --query '[].id')
앱 만들기
다음 예제에서는 Node.js 앱을 만듭니다.
az containerapp create \
--resource-group $GROUP_NAME \
--name $CONTAINER_APP_NAME \
--environment $CONNECTED_ENVIRONMENT_ID \
--environment-type connected \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external
az containerapp browse --resource-group $GROUP_NAME --name $CONTAINER_APP_NAME
Log Analytics를 사용하여 진단 로그 가져오기
참고 항목
진단 정보를 보려면 Container Apps 확장을 설치할 때 Log Analytics 구성이 필요합니다. Log Analytics 없이 확장을 설치했다면 이 단계를 건너뜁니다.
Container Apps 확장을 이용해 구성한 Log Analytics 작업 영역으로 이동한 다음, 왼쪽 탐색 메뉴에서 로그를 클릭합니다.
다음 샘플 쿼리를 실행하여 지난 72시간 동안의 로그를 표시합니다.
쿼리를 실행할 때 오류가 발생하면 10-15분 후에 다시 시도합니다. Log Analytics가 애플리케이션에서 로그 수신을 시작하는 데 지연이 있을 수 있습니다.
let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"
Kubernetes 클러스터에서 호스트되는 모든 앱에 대한 애플리케이션 로그가 ContainerAppConsoleLogs_CL
이라는 사용자 지정 로그 테이블에 있는 Log Analytics 작업 영역에 로깅됩니다.
- Log_s에는 지정된 Container Apps 확장에 대한 애플리케이션 로그가 포함됩니다.
- AppName_s에는 컨테이너 앱 앱 이름이 포함됩니다. Log_s 열에는 애플리케이션 코드를 통해 작성한 로그 외에 컨테이너 시작 및 종료에 대한 로그도 포함됩니다.
Kusto 시작하기에서 로그 쿼리에 대해 자세히 알아볼 수 있습니다.