다음을 통해 공유


Azure Arc Gateway를 사용하여 네트워크 구성 요구 사항 간소화(미리 보기)

엔터프라이즈 프록시를 사용하여 아웃바운드 트래픽을 관리하는 경우 Azure Arc 게이트웨이(미리 보기)를 통해 연결을 사용하도록 설정하는 프로세스를 간소화할 수 있습니다.

Azure Arc 게이트웨이(미리 보기)를 사용하면 다음을 수행할 수 있습니다.

  • FQDN(정규화된 도메인 이름) 7개에 대해서만 공용 네트워크 액세스를 열어 Azure Arc에 연결합니다.
  • Arc 에이전트가 Arc 게이트웨이를 통해 Azure로 보내는 모든 트래픽을 보고 감사합니다.

Important

Azure Arc 게이트웨이는 현재 미리 보기로 제공됩니다.

베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

Azure Arc 게이트웨이 작동 방식

Arc 게이트웨이는 두 개의 새 구성 요소를 도입하여 작동합니다.

Arc 게이트웨이 리소스는 Azure 트래픽에 대한 공통 프런트 엔드 역할을 하는 Azure 리소스입니다. 게이트웨이 리소스는 특정 도메인/URL에서 제공됩니다. 이 문서에 설명된 단계에 따라 이 리소스를 만들어야 합니다. 게이트웨이 리소스를 성공적으로 만든 후에는 이 도메인/URL이 성공 응답에 포함됩니다.

Arc 프록시는 자체 Pod("Azure Arc 프록시"라고 함)로 실행되는 새 구성 요소입니다. 이 구성 요소는 Azure Arc 에이전트 및 확장에서 사용하는 전달 프록시 역할을 합니다. Azure Arc 프록시에 대한 구성이 필요하지 않습니다. Arc 지원 Kubernetes 에이전트 버전 1.21.10을 기준으로 이 Pod는 이제 핵심 Arc 에이전트의 일부이며 Arc 지원 Kubernetes 클러스터의 컨텍스트 내에서 실행됩니다. 

게이트웨이가 배치되면 Arc 에이전트 → Azure Arc 프록시 → 엔터프라이즈 프록시 → Arc 게이트웨이 → 대상 서비스를 통해 트래픽이 흐릅니다.

Arc 지원 Kubernetes를 사용하는 Azure Arc 게이트웨이(미리 보기)의 아키텍처를 보여 주는 다이어그램

현재 제한 사항

공개 미리 보기 중에는 다음과 같은 제한 사항이 적용됩니다. 구성을 계획할 때 이러한 요소를 고려합니다.

  • Arc 게이트웨이에서는 TLS 종료 프록시가 지원되지 않습니다.
  • Arc 게이트웨이 외에도 ExpressRoute/사이트 간 VPN 또는 프라이빗 엔드포인트를 사용할 수 없습니다.
  • Azure 구독당 Arc 게이트웨이 리소스는 5개로 제한됩니다.
  • Arc 게이트웨이는 Azure 퍼블릭 클라우드의 연결에만 사용할 수 있습니다.

Azure CLI 또는 Azure PowerShell을 사용하여 Arc 게이트웨이 리소스를 만들 수 있습니다.

Arc 게이트웨이 리소스를 만들 때 Azure 지역과 함께 리소스가 만들어지는 구독 및 리소스 그룹을 지정합니다. 그러나 동일한 테넌트에 있는 모든 Arc 지원 리소스는 자체 구독 또는 지역에 관계없이 리소스를 사용할 수 있습니다.

Arc 게이트웨이 리소스를 만들고 Arc 지원 Kubernetes 클러스터와의 연결을 관리하려면 다음 권한이 필요합니다.

  • Microsoft.Kubernetes/connectedClusters/settings/default/write
  • Microsoft.hybridcompute/gateways/read
  • Microsoft.hybridcompute/gateways/write

Arc 게이트웨이 리소스 만들기

  1. Azure에 액세스할 수 있는 컴퓨터에서 다음 Azure CLI 명령을 실행합니다.

    az extension add -n arcgateway
    
  2. 다음으로, 다음 Azure CLI 명령을 실행하여 Arc 게이트웨이 리소스를 만들고 자리 표시자를 원하는 값으로 바꿉 있습니다.

    az arcgateway create --name <gateway's name> --resource-group <resource group> --location <region> --gateway-type public --allowed-features * --subscription <subscription name or id>
    

일반적으로 Arc 게이트웨이 리소스 만들기를 완료하는 데 약 10분이 걸립니다.

필요한 URL에 대한 액세스 확인

리소스를 성공적으로 만든 후 성공 응답에는 Arc 게이트웨이 URL이 포함됩니다. Arc 리소스가 있는 환경에서 Arc 게이트웨이 URL 및 아래의 모든 URL이 허용되는지 확인합니다.

URL 목적
[Your URL prefix].gw.arc.azure.com 게이트웨이 URL입니다. 이 URL은 리소스를 만든 후 실행 az arcgateway list 하여 가져올 수 있습니다.
management.azure.com ARM 제어 채널에 필요한 Azure Resource Manager 엔드포인트입니다.
<region>.obo.arc.azure.com 클러스터 연결을 구성할 때 필요합니다.
login.microsoftonline.com, <region>.login.microsoft.com ID 액세스 토큰을 획득하는 데 사용되는 Microsoft Entra ID 엔드포인트입니다.
gbl.his.arc.azure.com, <region>.his.arc.azure.com Arc 에이전트와 통신하기 위한 클라우드 서비스 엔드포인트입니다. 짧은 이름(예 eus : 미국 동부)을 사용합니다.
mcr.microsoft.com, *.data.mcr.microsoft.com Azure Arc 에이전트의 컨테이너 이미지를 끌어오는 데 필요합니다.

Arc 게이트웨이 리소스를 사용하여 Kubernetes 클러스터를 Azure Arc에 온보딩

  1. 환경이 Azure Arc 지원 Kubernetes에 필요한 모든 필수 구성 요소를 충족하는지 확인합니다. Azure Arc 게이트웨이를 사용하므로 전체 네트워크 요구 사항을 충족할 필요가 없습니다.

  2. 배포 컴퓨터에서 아웃바운드 프록시 서버를 사용하기 위해 Azure CLI에 필요한 환경 변수를 설정합니다.

    export HTTP_PROXY=<proxy-server-ip-address>:<port> export HTTPS_PROXY=<proxy-server-ip-address>:<port> export NO_PROXY=<cluster-apiserver-ip-address>:<port>

  3. Kubernetes 클러스터에서 proxy-httpsproxy-http 매개 변수를 지정하여 연결 명령을 실행합니다. 프록시 서버가 HTTP 및 HTTPS 둘 다로 설정된 경우 HTTP 프록시에는 --proxy-http를, HTTPS 프록시에는 --proxy-https를 사용해야 합니다. 프록시 서버에서 HTTP만 사용하는 경우 두 매개 변수 모두에 해당 값을 사용할 수 있습니다.

    az connectedk8s connect -g <resource_group> -n <cluster_name> --gateway-resource-id <gateway_resource_id> --proxy-https <proxy_value> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --location <region>

    참고 항목

    클러스터 내 서비스 간 통신과 관련된 일부 네트워크 요청은 아웃바운드 통신을 위해 프록시 서버를 통해 라우팅되는 트래픽과 분리되어야 합니다. 매개 변수를 --proxy-skip-range 사용하여 쉼표로 구분된 방식으로 CIDR 범위와 엔드포인트를 지정할 수 있으므로 에이전트에서 이러한 엔드포인트로의 통신이 아웃바운드 프록시를 통해 이동되지 않습니다. 최소한 클러스터에 있는 서비스의 CIDR 범위는 이 매개 변수의 값으로 지정되어야 합니다. 예를 들어 모든 서비스에 ClusterIP 범위의 값이 있는 서비스 목록을 반환하는 경우 kubectl get svc -A 지정할 --proxy-skip-range 값은 다음과 같습니다10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc10.0.0.0/16.

    대부분의 아웃바운드 프록시 환경에서 --proxy-http, --proxy-https--proxy-skip-range가 필요합니다. --proxy-cert 는 프록시에서 예상하는 신뢰할 수 있는 인증서를 에이전트 Pod의 신뢰할 수 있는 인증서 저장소에 삽입해야 하는 경우에만 필요합니다.

    Websocket 연결을 허용하도록 아웃바운드 프록시를 구성해야 합니다.

Arc 게이트웨이를 사용하도록 기존 클러스터 구성

Arc 게이트웨이를 사용하도록 기존 클러스터를 업데이트하려면 다음 명령을 실행합니다.

az connectedk8s update -g <resource_group> -n <cluster_name> --gateway-resource-id <gateway_resource_id>

업데이트가 성공했는지 확인하려면 다음 명령을 실행하고 응답이 다음과 같은 true지 확인합니다.

 az connectedk8s show -g <resource_group> -n <cluster_name> --query 'gateway.enabled' 

Arc 게이트웨이를 사용하도록 클러스터를 업데이트한 후에는 엔터프라이즈 프록시 또는 방화벽에서 이전에 허용된 Arc 엔드포인트 중 일부는 더 이상 필요하지 않으며 제거할 수 있습니다. 더 이상 필요하지 않은 엔드포인트를 제거하기 전에 1시간 이상 기다리는 것이 좋습니다. Arc 게이트웨이에 필요한 엔드포인트를 제거하지 않도록 합니다.

Arc 게이트웨이 제거

Arc 게이트웨이를 사용하지 않도록 설정하고 Arc 게이트웨이 리소스와 Arc 지원 클러스터 간의 연결을 제거하려면 다음 명령을 실행합니다.

az connectedk8s update -g <resource_group> -n <cluster_name> --disable-gateway 

트래픽 모니터링

게이트웨이의 트래픽을 감사하려면 게이트웨이 라우터의 로그를 확인합니다.

  1. kubectl get pods -n azure-arc을 실행합니다.
  2. Arc 프록시 Pod를 식별합니다(이름은 로 arc-proxy-시작).
  3. kubectl logs -n azure-arc <Arc Proxy pod name>을 실행합니다.

추가 시나리오

공개 미리 보기 중에 Arc 게이트웨이는 클러스터 온보딩에 필요한 엔드포인트와 추가 Arc 지원 시나리오에 필요한 엔드포인트의 일부를 다룹니다. 채택하는 시나리오에 따라 프록시에서 추가 엔드포인트를 허용해야 합니다.

Arc 게이트웨이가 사용 중인 경우 엔터프라이즈 프록시에서 다음 시나리오에 대해 나열된 모든 엔드포인트를 허용해야 합니다.

  • Azure Monitor의 컨테이너 인사이트:
    • *.ods.opinsights.azure.com
    • *.oms.opinsights.azure.com
    • *.monitoring.azure.com
  • Azure Key Vault:
    • <vault-name>.vault.azure.net
  • Azure Policy:
    • data.policy.core.windows.net
    • store.policy.core.windows.net
  • 컨테이너용 Microsoft Defender:
    • *.ods.opinsights.azure.com
    • *.oms.opinsights.azure.com
  • Azure Arc 지원 데이터 서비스
    • *.ods.opinsights.azure.com
    • *.oms.opinsights.azure.com
    • *.monitoring.azure.com