Azure Arc의 App Service, Functions 및 Logic Arc(미리 보기)

Azure Arc 지원 Kubernetes 클러스터에서 App Service, Functions, Logic Apps를 실행할 수 있습니다. Kubernetes 클러스터는 온-프레미스이거나 타사 클라우드에서 호스트될 수 있습니다. 이 방법을 통해 앱 개발자는 App Service 기능을 활용할 수 있습니다. 이와 동시에 IT 관리자는 내부 인프라에서 App Service 앱을 호스트하여 회사 규정 준수를 유지할 수 있습니다. 또한 다른 IT 운영자는 기존 Kubernetes 클러스터에서 App Service를 실행하여 이전에 투자한 다른 클라우드 공급자를 보호할 수 있습니다.

참고 항목

App Service, Functions 및 Logic Apps에 대해 Kubernetes 클러스터를 설정하는 방법을 알아보려면 App Service Kubernetes 환경 만들기(미리 보기)를 참조하세요.

대부분의 경우 앱 개발자는 배포된 Kubernetes 환경을 나타내는 올바른 Azure 지역에 배포하는 방법만 알면 됩니다. 환경을 제공하고 기본 Kubernetes 인프라를 유지 관리하는 운영자는 다음 Azure 리소스를 알고 있어야 합니다.

공개 미리 보기 제한 사항

App Service Kubernetes 환경에는 다음과 같은 공개 미리 보기 제한 사항이 적용됩니다. 이 제한 목록은 변경 내용 및 기능을 사용할 수 있게 되면서 업데이트됩니다.

제한 사항 세부 정보
지원되는 Azure 지역 미국 동부, 서부 유럽
클러스터 네트워킹 요구 사항 LoadBalancer 서비스 유형을 지원해야 합니다.
클러스터 스토리지 요구 사항 해당되는 경우 코드 기반 앱의 배포 및 빌드를 지원하려면 확장에서 사용할 수 있는 클러스터 연결 스토리지 클래스가 있어야 합니다.
기능: 네트워킹 사용할 수 없음(클러스터 네트워킹에 따라 다름)
기능: 관리되는 ID 사용할 수 없음
기능: Key Vault 참조 사용할 수 없음(관리되는 ID에 따라 다름)
기능: 관리되는 ID를 사용하여 ACR에서 이미지 끌어오기 사용할 수 없음(관리되는 ID에 따라 다름)
기능: Functions 및 Logic Apps에 대한 포털 내 편집 사용할 수 없음
기능: 함수 또는 키의 포털 목록 클러스터에 공개적으로 연결할 수 없는 경우 사용할 수 없음
기능: FTP 게시 사용할 수 없음
로그 Log Analytics는 클러스터 확장으로 구성해야 합니다. 사이트별로 구성하지 않습니다.

App Service 확장에 의해 만들어진 Pod

App Service 확장을 Azure Arc 지원 Kubernetes 클러스터에 설치하면 지정된 릴리스 네임스페이스에 여러 Pod가 만들어집니다. 이러한 Pod를 사용하면 Kubernetes 클러스터가 Azure에서 Microsoft.Web 리소스 공급자의 확장이 되고 앱의 관리 및 운영을 지원할 수 있습니다. 필요에 따라 이벤트 기반 크기 조정을 위해 확장이 KEDA를 설치하도록 선택할 수 있습니다.

다음 표에서는 기본적으로 만들어지는 각 Pod의 역할에 대해 설명합니다.

Pod 설명
<extensionName>-k8se-app-controller 클러스터에 리소스를 만들고 구성 요소의 상태를 유지 관리하는 핵심 운영자 Pod입니다.
<extensionName>-k8se-envoy 모든 데이터 평면 요청에 대한 프런트 엔드 프록시 계층입니다. 인바운드 트래픽을 올바른 앱으로 라우팅합니다.
<extensionName>-k8se-activator 시스템에서 사용 가능한 첫 번째 인스턴스를 가져오는 동안 0으로 크기가 조정된 앱에 도움이 되는 대체 라우팅 대상입니다.
<extensionName>-k8se-build-service 배포 작업을 지원하고 고급 도구 기능을 제공합니다.
<extensionName>-k8se-http-scaler KEDA에 크기 조정 정보를 제공하기 위해 인바운드 요청 볼륨을 모니터링합니다.
<extensionName>-k8se-img-cacher 자리 표시자 및 앱 이미지를 노드의 로컬 캐시로 끌어옵니다.
<extensionName>-k8se-log-processor 앱 및 기타 구성 요소에서 로그를 수집하고 Log Analytics로 보냅니다.
placeholder-azure-functions-* Azure Functions에 대한 콜드 시작 속도를 높이는 데 사용됩니다.

App Service Kubernetes 환경

앱을 만들려면 App Service Kubernetes 환경 리소스가 필요합니다. 이를 통해 기본 DNS 접미사와 같이 사용자 지정 위치의 앱에 공통적으로 구성할 수 있습니다.

사용자 지정 위치에 하나의 Kubernetes 환경 리소스만 만들 수 있습니다. 대부분의 경우 앱을 만들고 배포하는 개발자는 리소스를 직접 인식할 필요가 없습니다. 제공된 사용자 지정 위치 ID에서 직접 유추할 수 있습니다. 그러나 Azure Resource Manager 템플릿을 정의할 때 계획 리소스는 환경의 리소스 ID를 직접 참조해야 합니다. 계획 및 지정된 환경의 사용자 지정 위치 값이 일치해야 합니다.

Azure Arc의 App Service, Functions 및 Logic Apps(미리 보기)에 대한 FAQ

가격은 얼마인가요?

공개 미리 보기 기간에는 Azure Arc의 App Service가 무료로 제공됩니다.

Windows 및 Linux 앱을 모두 지원하나요?

코드 및 사용자 지정 컨테이너에는 Linux 기반 앱만 지원됩니다. Windows 앱은 지원되지 않습니다.

어떤 기본 제공 애플리케이션 스택을 지원하나요?

모든 기본 제공 Linux 스택이 지원됩니다.

모든 앱 배포 유형을 지원하나요?

FTP 배포는 지원되지 않습니다. 현재 az webapp up도 지원되지 않습니다. Git, ZIP, CI/CD, Visual Studio, Visual Studio Code 등의 기타 배포 방법이 지원됩니다.

어떤 App Service 기능을 지원하나요?

미리 보기 기간 동안 특정 App Service 기능의 유효성을 검사하고 있습니다. 지원되는 경우 Azure Portal의 왼쪽 탐색 옵션이 활성화됩니다. 아직 지원되지 않는 기능은 회색으로 표시됩니다.

네트워킹 기능을 지원하나요?

아니요. 하이브리드 연결 또는 Virtual Network 통합과 같은 네트워킹 기능은 지원되지 않습니다. 액세스 제한 지원은 2022년 4월에 추가되었습니다. 네트워킹은 Kubernetes 클러스터 자체의 네트워킹 규칙에서 직접 처리해야 합니다.

관리 ID를 지원하나요?

아니요. Azure Arc에서 실행할 때 앱에 관리 ID를 할당할 수 없습니다. 앱에 다른 Azure 리소스 작업을 위한 ID가 필요한 경우 대신 애플리케이션 서비스 주체를 사용하는 것이 좋습니다.

스케일링 한도가 있나요?

Azure Arc를 사용하는 Kubernetes의 Azure App Service와 함께 배포된 모든 애플리케이션은 기본 Kubernetes 클러스터의 한도 내에서 스케일링할 수 있습니다. 기본 Kubernetes 클러스터에서 사용 가능한 컴퓨팅 리소스(주로 CPU 및 메모리)가 부족하면 애플리케이션은 Kubernetes가 사용 가능한 리소스로 예약할 수 있는 애플리케이션의 인스턴스 수로만 스케일링할 수 있습니다.

어떤 로그가 수집되나요?

시스템 구성 요소와 애플리케이션 모두에 대한 로그는 표준 출력에 기록됩니다. 두 로그 유형 모두를 표준 Kubernetes 도구를 사용하여 분석을 위해 수집할 수 있습니다. 또한 Log Analytics 작업 영역을 사용하여 App Service 클러스터 확장을 구성할 수도 있으며 모든 로그를 해당 작업 영역으로 보냅니다.

기본적으로 시스템 구성 요소의 로그는 Azure 팀으로 전송됩니다. 애플리케이션 로그는 전송되지 않습니다. logProcessor.enabled=false를 확장 구성 설정으로 설정하여 이러한 로그가 전송되지 않도록 방지할 수 있습니다. 이 구성 설정은 Log Analytics 작업 영역에도 애플리케이션이 전달되지 않습니다. 로그 프로세서를 사용하지 않도록 하면 지원 사례에 필요한 시간에 영향을 줄 수 있으며 표준 출력에서 다른 방법을 통해 로그를 수집하라는 메시지가 표시됩니다.

공급자 등록 오류가 표시되는 경우 어떻게 해야 하나요?

Kubernetes 환경 리소스를 만들 때 일부 구독에 “등록된 리소스 공급자를 찾을 수 없음” 오류가 표시될 수 있습니다. 오류 세부 정보에는 유효한 것으로 간주되는 위치 및 API 버전 세트가 포함될 수 있습니다. 이 오류 메시지가 반환되는 경우 Microsoft.Web 공급자에 대해 구독을 다시 등록해야 할 수 있습니다. 이 작업은 기존 애플리케이션 또는 API에 영향을 주지 않습니다. 다시 등록하려면 Azure CLI를 사용하여 az provider register --namespace Microsoft.Web --wait를 실행합니다. 그런 다음, Kubernetes 환경 명령을 다시 시도합니다.

ARM64 기반 클러스터에 애플리케이션 서비스 확장을 배포할 수 있나요?

ARM64 기반 클러스터는 현재 지원되지 않습니다.

확장을 배포할 수 있는 Kubernetes 배포는 무엇인가요?

확장은 AKS, Azure Stack HCI의 AKS, Google Kubernetes 엔진, Amazon Elastic Kubernetes Service 및 Kubernetes 클러스터 API에서 유효성을 검사했습니다.

확장 릴리스 정보

애플리케이션 서비스 확장 v 0.9.0(2021년 5월)

  • 애플리케이션 서비스 확장의 초기 퍼블릭 미리 보기 릴리스입니다.
  • 웹, 함수 및 논리 애플리케이션의 코드 및 컨테이너 기반 배포를 지원합니다.
  • 웹 애플리케이션 런타임 지원 --- .NET 3.1 및 5.0, 노드 JS 12 및 14, Python 3.6, 3.7 및 3.8, PHP 7.3 및 7.4, Ruby 2.5, 2.5.5, 2.6 및 2.6.2, Java SE 8u232, 8u242, 8u252, 11.05, 11.06 및 11.07, Tomcat 8.5, 8.5.41, 8.5.53, 8.5.57, 9.0, 9.0.20, 9.0.33 및 9.0.37.

애플리케이션 서비스 확장 v 0.10.0(2021년 11월)

  • Envoy 엔드포인트에 할당하는 데 필요한 미리 할당된 고정 IP 주소에 대한 요구 사항이 제거됨
  • Keda를 v2.4.0으로 업그레이드
  • Envoy를 v1.19.0으로 업그레이드
  • Azure Function 런타임을 v3.3.1로 업그레이드
  • 앱 컨트롤러 및 Envoy 컨트롤러의 기본 복제본 수를 2로 설정하여 안정성을 더합니다.

확장이 안정적인 버전이고 auto-upgrade-minor-version이 true로 설정된 경우 확장이 자동으로 업그레이드됩니다. 확장을 최신 버전으로 수동으로 업그레이드하려면 다음 명령을 실행할 수 있습니다.

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.10.0

애플리케이션 서비스 확장 v 0.11.0(2021년 12월)

  • Java 및 .NET 웹 애플리케이션에 대한 Application Insights 지원이 추가됨
  • .NET 6.0 웹 애플리케이션에 대한 지원이 추가됨
  • .NET Core 2.0 제거됨
  • 슬롯 교환 작업이 실패하게 된 문제 해결
  • Ruby 웹 애플리케이션을 만드는 동안 고객이 경험한 문제 해결

확장이 안정적인 버전이고 auto-upgrade-minor-version이 true로 설정된 경우 확장이 자동으로 업그레이드됩니다. 확장을 최신 버전으로 수동으로 업그레이드하려면 다음 명령을 실행할 수 있습니다.

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.0

애플리케이션 서비스 확장 v 0.11.1(2021년 12월)

  • CRD 업데이트 문제를 해결하기 위한 부 릴리스

확장이 안정적인 버전이고 auto-upgrade-minor-version이 true로 설정된 경우 확장이 자동으로 업그레이드됩니다. 확장을 최신 버전으로 수동으로 업그레이드하려면 다음 명령을 실행할 수 있습니다.

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.1

애플리케이션 서비스 확장 v 0.12.0(2022년 1월)

  • 아웃바운드 프록시 지원
  • 빌드 서비스의 병렬 빌드 지원
  • Envoy를 1.20.1로 업그레이드
  • .NET 애플리케이션에 대한 Application Insights 지원과 관련된 문제 해결

확장이 안정적인 버전이고 auto-upgrade-minor-version이 true로 설정된 경우 확장이 자동으로 업그레이드됩니다. 확장을 최신 버전으로 수동으로 업그레이드하려면 다음 명령을 실행할 수 있습니다.

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.0

애플리케이션 서비스 확장 v 0.12.1(2022년 3월)

  • Log Analytics 작업 영역에 로깅을 사용하도록 설정하는 아웃바운드 프록시 지원과 관련된 문제 해결

확장이 안정적인 버전이고 auto-upgrade-minor-version이 true로 설정된 경우 확장이 자동으로 업그레이드됩니다. 확장을 최신 버전으로 수동으로 업그레이드하려면 다음 명령을 실행할 수 있습니다.

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.1

애플리케이션 서비스 확장 v 0.12.2(2022년 3월)

  • 확장 이름 길이가 35자를 초과할 때 v 0.12.0에서 업그레이드할 때 업그레이드 오류를 해결하도록 업데이트

확장이 안정적인 버전이고 auto-upgrade-minor-version이 true로 설정된 경우 확장이 자동으로 업그레이드됩니다. 확장을 최신 버전으로 수동으로 업그레이드하려면 다음 명령을 실행할 수 있습니다.

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.2

애플리케이션 서비스 확장 v 0.13.0(2022년 4월)

  • Node JS 애플리케이션에 대한 Application Insights 코드리스 통합에 대한 지원이 추가됨
  • CLI를 통한 액세스 제한에 대한 지원이 추가됨
  • 문제 해결을 지원하기 위해 확장 설치에 실패할 때 제공되는 자세한 정보

확장이 안정적인 버전이고 auto-upgrade-minor-version이 true로 설정된 경우 확장이 자동으로 업그레이드됩니다. 확장을 최신 버전으로 수동으로 업그레이드하려면 다음 명령을 실행할 수 있습니다.

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.0

애플리케이션 서비스 확장 v 0.13.1(2022년 4월)

  • 클러스터를 v 0.13.0으로 자동 업그레이드하는 동안 표시되는 업그레이드 오류를 해결하도록 업데이트

확장이 안정적인 버전이고 auto-upgrade-minor-version이 true로 설정된 경우 확장이 자동으로 업그레이드됩니다. 확장을 최신 버전으로 수동으로 업그레이드하려면 다음 명령을 실행할 수 있습니다.

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.1

애플리케이션 서비스 확장 v 0.13.5(2023년 12월)

  • Kubernetes 버전 1.26 이상을 지원하도록 업데이트
  • Envoy를 1.2.1로 업데이트
  • Keda를 v2.10.0으로 업데이트
  • EasyAuth를 v1.6.20으로 업데이트
  • 지원되는 언어에 대한 기본 이미지 업데이트

확장이 안정적인 버전이고 auto-upgrade-minor-version이 true로 설정된 경우 확장이 자동으로 업그레이드됩니다. 확장을 최신 버전으로 수동으로 업그레이드하려면 다음 명령을 실행할 수 있습니다.

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.5

다음 단계

App Service Kubernetes 환경 만들기(미리 보기)