Azure 앱 서비스의 Windows 컨테이너 문제 해결

Azure 앱 서비스의 Windows 컨테이너 문제 해결

저는 Azure App Service로 Windows 컨테이너를 실행하는 데 일주일 넘게 어려움을 겪었습니다. 처음에는 표준 컨테이너 인스턴스를 사용하는 것을 선호했지만 (Linux 컨테이너와 달리) 사용자 지정이 아닌 공용 또는 개인 네트워킹 옵션만 있는 것으로 보입니다. 앱 서비스 내에서 Windows 컨테이너를 실행하면 다른 웹 사이트에서 얻을 수 있는 것과 동일한 네트워킹 옵션을 얻을 수 있는 것처럼 보입니다. App Services의 Windows 컨테이너에 대한 Azure 지원은 다음과 같습니다.거의 1년 된, 그러나 매우 기본적인 시나리오를 제외하면 이를 해결하는 리소스는 상대적으로 적습니다.

컨테이너를 사용하는 목적은 VM의 오버헤드 없이 주문형으로 타사 백그라운드 Windows 서비스를 실행하는 것입니다. 앱 서비스를 사용하고 있으므로 일부 상태 정보에 대해 asp.net 핵심 나머지 끝점을 추가하기로 결정했습니다. 내 컨테이너는 mcr.microsoft.com/windows/servercore:ltsc2019. .net 및 asp.net 코어(기본 이미지에는 .net 프레임워크만 있음)를 다운로드하여 설치하고, 서비스를 설치하고, 웹 사이트를 구축 및 실행한 다음, 진입점은 일부 구성 값을 업데이트하고 asp를 실행하는 Powershell 스크립트입니다. 서비스를 관리하는 넷 코어 엔드포인트입니다.

포털을 사용하면 컨테이너와 코드, Windows와 Linux에 대한 옵션을 선택하고 다음 작업을 시작할 수 있습니다.기본 빠른 시작 이미지, 하지만 Azure Container Registry의 내 이미지가 제대로 시작되지 않습니다. 나는 다음 중 하나를 사용하고 있습니다.지원되는 기본 이미지, 내 로컬 컴퓨터에서는 제대로 실행됩니다. Azure에서는 모든 것을 생성하지만 시작되지는 않습니다. 소량의 로깅은 시작하고 파일 공유 볼륨을 마운트한 다음 기본적으로 종료됨을 나타냅니다.

  • 이미지용 컨테이너 생성
  • 컨테이너 시작을 시도하는 중
  • 컨테이너 시작 성공
  • 컨테이너가 시작되었습니다
  • 컨테이너 유틸리티 구성 호출
  • 컨테이너 유틸리티 구성 완료
  • 컨테이너가 시작되었습니다
  • 컨테이너를 중지하려고 시도하는 중
  • 컨테이너 종료를 시도하는 중
  • 컨테이너 제거를 시도하는 중
  • 컨테이너가 성공적으로 제거되었습니다.

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

또한 이상한 점은 빠른 시작 이미지를 사용해도 실제 컨테이너 인스턴스가 표시되지 않는다는 것입니다. 이는 App Service 계획에서 직접 실행되기 때문일 수 있지만 그 내용은 명확하지 않습니다. 웹 앱에서 App Service 계획(Windows 컨테이너 계획)으로 이동할 수 있습니다. 여기서 앱 아래에는 "앱, 컨테이너, 창" 유형의 단일 앱이 표시되지만 콘솔 로그를 볼 수 있는 액세스 권한은 어디에도 없습니다. 컨테이너 이미지 유형의 리소스를 사용하여 가능한 한 셸을 실행합니다. 제가 본 일부 스크린샷에서는 "설정" 아래에 "컨테이너 설정" 링크가 표시되지 않는 것을 볼 수 있지만 이는 어떤 이유로 Linux 컨테이너에만 해당되는 것일 수 있습니다.

여기에 이미지 설명을 입력하세요

그렇다면 앱 서비스 내에서 실행할 때 컨테이너 문제를 어떻게 해결해야 할까요? 어딘가에 뭔가 빠졌나요?

답변1

진단

Diagnose & Solve Problems -> Container InitializationAzure Web App for Containers를 클릭하면 귀중한 디버깅 정보를 찾을 수 있습니다 .

쿠두

App Service에는 파일 디버깅, 탐색, 업로드에 사용할 수 있는 디버그 콘솔과 환경에 대한 정보를 가져오기 위한 JSON 엔드포인트가 함께 제공됩니다. 이 콘솔을 앱의 Kudu 콘솔 또는 SCM 대시보드라고 합니다.

https:// 링크로 이동하여 이 대시보드에 액세스할 수 있습니다.[앱 이름].scm.azurewebsites.net/.

Kudu가 제공하는 기능 중 일부는 다음과 같습니다.

  • PowerShell cmdlet 및 기본 DOS 명령을 실행할 수 있는 애플리케이션 로그 스트림 진단 덤프 디버그 콘솔에 대한 환경 설정입니다.

https://docs.microsoft.com/en-us/azure/app-service/troubleshoot-performance-degradation

관련 정보