자습서: 새 애플리케이션 게이트웨이 인스턴스를 사용하여 새 AKS 클러스터에 대한 수신 컨트롤러 추가 기능 사용

Azure CLI를 사용하여 새 AKS(Azure Kubernetes Services) 클러스터에 대한 AGIC(Application Gateway 수신 컨트롤러) 추가 기능을 사용하도록 설정할 수 있습니다.

이 자습서에서는 AGIC 추가 기능을 사용하도록 설정된 AKS 클러스터를 만듭니다. 클러스터를 만들면 사용할 Azure Application Gateway 인스턴스가 자동으로 생성됩니다. 그런 다음 추가 기능을 사용하여 애플리케이션 게이트웨이를 통해 애플리케이션을 노출하는 샘플 애플리케이션을 배포합니다.

추가 기능은 이전에 Helm을 통해 AKS 클러스터에 대한 AGIC를 배포하는 훨씬 더 빠른 방법을 제공합니다. 또한 완전히 관리되는 환경을 제공합니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 리소스 그룹을 만듭니다.
  • AGIC 추가 기능을 사용하도록 설정된 새 AKS 클러스터를 만듭니다.
  • AKS 클러스터에서 수신에 AGIC를 사용하여 샘플 애플리케이션을 배포합니다.
  • 애플리케이션 게이트웨이를 통해 애플리케이션에 연결할 수 있는지 확인합니다.

Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.

사전 요구 사항

리소스 그룹 만들기

Azure에서 관련 리소스를 리소스 그룹에 할당합니다. az group create를 사용하여 리소스 그룹을 만듭니다. 다음 예제에서는 미국 동부 위치(지역)에 myResourceGroup이라는 리소스 그룹을 만듭니다.

az group create --name myResourceGroup --location eastus

추가 기능을 사용하도록 설정된 AKS 클러스터 배포

이제 AGIC 추가 기능을 사용하도록 설정된 새 AKS 클러스터를 배포합니다. 이 프로세스에서 사용할 기존 애플리케이션 게이트웨이 인스턴스를 제공하지 않으면 AKS 클러스터에 트래픽을 제공하도록 새 애플리케이션 게이트웨이 인스턴스를 자동으로 만들고 설정합니다.

참고 항목

애플리케이션 게이트웨이 수신 컨트롤러 추가 기능은 애플리케이션 게이트웨이 v1 SKU가 아닌 애플리케이션 게이트웨이 v2 SKU(표준 및 WAF) 지원합니다. AGIC 추가 기능을 통해 새 애플리케이션 게이트웨이 인스턴스를 배포하는 경우 SKU를 Standard_v2 애플리케이션 게이트웨이만 배포할 수 있습니다. 애플리케이션 게이트웨이 WAF_v2 SKU에 대해 추가 기능을 사용하도록 설정하려면 다음 방법 중 하나를 사용합니다.

  • 포털을 통해 애플리케이션 게이트웨이에서 WAF를 사용하도록 설정합니다.
  • 먼저 WAF_v2 Application Gateway 인스턴스를 만든 다음, 기존 AKS 클러스터 및 기존 애플리케이션 게이트웨이 인스턴스에서 AGIC 추가 기능을 사용하도록 설정하는 방법에 대한 지침을 따릅니다.

다음 예제에서는 Azure CNI관리 ID를 사용하여 myCluster라는 새 AKS 클러스터를 배포합니다. AGIC 추가 기능은 만든 리소스 그룹 myResourceGroup에서 사용하도록 설정됩니다.

기존 애플리케이션 게이트웨이 인스턴스를 지정하지 않고 AGIC 추가 기능을 사용하도록 설정된 새 AKS 클러스터를 배포하면 Standard_v2 SKU 애플리케이션 게이트웨이 인스턴스가 자동으로 생성됩니다. 새 애플리케이션 게이트웨이 인스턴스의 이름 및 서브넷 주소 공간을 지정해야 합니다. 주소 공간은 AKS 서브넷에서 사용하는 10.224.0.0/16 접두사와 겹치지 않고 AKS 가상 네트워크에서 사용하는 10.224.0.0/12 접두사여야 합니다. 이 자습서에서는 애플리케이션 게이트웨이 이름에 myApplicationGateway를 사용하고 서브넷 주소 공간에는 10.225.0.0/16을 사용합니다.

az aks create -n myCluster -g myResourceGroup --network-plugin azure --enable-managed-identity -a ingress-appgw --appgw-name myApplicationGateway --appgw-subnet-cidr "10.225.0.0/16" --generate-ssh-keys

[참고!] AGIC 에서 사용하는 ID에 서브넷 Application Gateway에 위임된 Microsoft.Network/virtualNetworks/서브넷/조인/작업 권한이 배포되었는지 확인하세요. 사용자 지정 역할이 이 권한으로 정의되지 않은 경우 Microsoft.Network/virtualNetworks/서브넷/조인/작업 권한이 포함된 기본 제공 네트워크 기여자 역할을 사용할 수 있습니다.

# Get application gateway id from AKS addon profile
appGatewayId=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.config.effectiveApplicationGatewayId")

# Get Application Gateway subnet id
appGatewaySubnetId=$(az network application-gateway show --ids $appGatewayId -o tsv --query "gatewayIpConfigurations[0].subnet.id")

# Get AGIC addon identity
agicAddonIdentity=$(az aks show -n myCluster -g myResourceGroup -o tsv --query "addonProfiles.ingressApplicationGateway.identity.clientId")

# Assign network contributor role to AGIC addon identity to subnet that contains the Application Gateway
az role assignment create --assignee $agicAddonIdentity --scope $appGatewaySubnetId --role "Network Contributor"

위의 명령에 대한 더 많은 매개 변수를 구성하려면 az aks create를 참조하세요.

참고 항목

만든 AKS 클러스터가 만든 리소스 그룹 myResourceGroup에 표시됩니다. 그러나 자동으로 생성된 애플리케이션 게이트웨이 인스턴스는 에이전트 풀이 있는 노드 리소스 그룹에 있습니다. 노드 리소스 그룹은 기본적으로 MC_resource-group-name_cluster-name_location 이름이 지정되지만 수정할 수 있습니다.

AGIC를 사용하여 샘플 애플리케이션 배포

이제 만든 AKS 클러스터에 샘플 애플리케이션을 배포합니다. 애플리케이션은 수신에 AGIC 추가 기능을 사용하고 애플리케이션 게이트웨이 인스턴스를 AKS 클러스터에 연결합니다.

먼저 다음 명령을 실행하여 AKS 클러스터에 대한 자격 증명을 가져옵니다.az aks get-credentials

az aks get-credentials -n myCluster -g myResourceGroup

이제 자격 증명이 있으므로 다음 명령을 실행하여 클러스터를 수신하는 데 AGIC를 사용하는 샘플 애플리케이션을 설정합니다. AGIC는 배포하는 샘플 애플리케이션에 해당하는 라우팅 규칙을 사용하여 이전에 설정한 애플리케이션 게이트웨이 인스턴스를 업데이트합니다.

kubectl apply -f https://raw.githubusercontent.com/Azure/application-gateway-kubernetes-ingress/master/docs/examples/aspnetapp.yaml 

애플리케이션에 연결할 수 있는지 확인

이제 애플리케이션 게이트웨이 인스턴스가 AKS 클러스터에 대한 트래픽을 제공하도록 설정되었으므로 애플리케이션에 연결할 수 있는지 확인해 보겠습니다. 먼저 수신의 IP 주소를 가져옵니다.

kubectl get ingress

다음 방법을 사용하여 만든 샘플 애플리케이션이 실행되고 있는지 확인합니다.

  • 이전 명령을 실행하여 얻은 애플리케이션 게이트웨이 인스턴스의 IP 주소를 방문합니다.
  • curl을 사용합니다.

애플리케이션 게이트웨이는 업데이트를 가져오는 데 1분 정도 걸릴 수 있습니다. 애플리케이션 게이트웨이가 포털에서 여전히 업데이트 상태인 경우 IP 주소에 도달하기 전에 완료하도록 합니다.

리소스 정리

더 이상 필요하지 않은 경우 myResourceGroupMC_myResourceGroup_myCluster_eastus 리소스 그룹을 삭제하여 이 자습서에서 만든 모든 리소스를 삭제합니다.

az group delete --name myResourceGroup
az group delete --name MC_myResourceGroup_myCluster_eastus

다음 단계

이 자습서에서는 다음을 수행합니다.

  • AGIC 추가 기능을 사용하도록 설정된 새 AKS 클러스터 만들기
  • AKS 클러스터에서 수신에 AGIC를 사용하여 샘플 애플리케이션 배포

AGIC 에 대한 자세한 내용은 Application Gateway 수신 컨트롤러 란 무엇이며 AKS 클러스터에 대한 AGIC 추가 기능을 사용하지 않도록 설정하고 다시 사용하도록 설정합니다.

기존 애플리케이션 게이트웨이를 사용하여 기존 AKS 클러스터에 애플리케이션 게이트웨이 수신 컨트롤러 추가 기능을 사용하도록 설정하는 방법을 알아보려면 다음 자습서를 진행합니다.