자습서: 새 애플리케이션 게이트웨이 인스턴스를 사용하여 새 AKS 클러스터에 대한 수신 컨트롤러 추가 항목을 사용하도록 설정
Azure CLI를 사용하여 새 AKS(Azure Kubernetes Services) 클러스터에 대한 AGIC(애플리케이션 게이트웨이 수신 컨트롤러) 추가 항목을 사용하도록 설정할 수 있습니다.
이 자습서에서는 AGIC 추가 기능을 사용하도록 설정하여 AKS 클러스터를 만듭니다. 클러스터를 만들면 사용할 Azure 애플리케이션 게이트웨이 인스턴스가 자동으로 만들어집니다. 그런 다음, 추가 항목을 사용하여 애플리케이션 게이트웨이를 통해 애플리케이션을 노출하는 샘플 애플리케이션을 배포합니다.
이 추가 기능은 이전에 Helm을 통한 것보다 AKS 클러스터에 대해 AGIC를 배포하는 훨씬 빠른 방법을 제공합니다. 또한 완전 관리형 환경을 제공합니다.
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- 리소스 그룹을 만듭니다.
- AGIC 추가 기능을 사용하도록 설정하여 새 AKS 클러스터를 만듭니다.
- AKS 클러스터에서 수신에 AGIC를 사용하여 샘플 애플리케이션을 배포합니다.
- 애플리케이션 게이트웨이를 통해 애플리케이션에 연결할 수 있는지 확인
Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.
필수 조건
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
리소스 그룹 만들기
Azure에서 관련 리소스를 리소스 그룹에 할당합니다. az group create를 사용하여 리소스 그룹을 만듭니다. 다음 예제에서는 미국 동부 위치(지역)에 myResourceGroup이라는 리소스 그룹을 만듭니다.
az group create --name myResourceGroup --location eastus
추가 기능을 사용하도록 설정하여 AKS 클러스터 배포
이제 AGIC 추가 기능을 사용하도록 설정하여 새 AKS 클러스터를 배포합니다. 이 프로세스에서 사용할 기존 애플리케이션 게이트웨이 인스턴스를 제공하지 않는 경우 AKS 클러스터에 대한 트래픽을 제공하기 위해 새 애플리케이션 게이트웨이 인스턴스를 자동으로 만들고 설정합니다.
참고 항목
애플리케이션 게이트웨이 수신 컨트롤러 추가 항목에서는 애플리케이션 게이트웨이 v2 SKU(표준 및 WAF)만 지원하고 애플리케이션 게이트웨이 v1 SKU를 지원하지 않습니다. AGIC 추가 항목을 통해 새 애플리케이션 게이트웨이 인스턴스를 배포하는 경우 애플리케이션 게이트웨이 Standard_v2 SKU만 배포할 수 있습니다. 애플리케이션 게이트웨이 WAF_v2 SKU에 대한 추가 항목을 사용하도록 설정하려면 다음 방법 중 하나를 사용합니다.
- 포털을 통해 애플리케이션 게이트웨이에서 WAF를 사용하도록 설정합니다.
- 먼저 WAF_v2 애플리케이션 게이트웨이 인스턴스를 만든 다음, 기존 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/subnets/join/action 권한이 있는지 확인하세요. 사용자 지정 역할이 이 권한으로 정의되지 않은 경우 Microsoft.Network/virtualNetworks/subnets/join/action 권한이 포함된 기본 제공 ‘네트워크 기여자’ 역할을 사용할 수 있습니다.
# 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 클러스터에 연결합니다.
먼저 az aks get-credentials
명령을 실행하여 AKS 클러스터에 대한 자격 증명을 가져옵니다.
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 주소에 연결하기 전에 완료하도록 합니다.
리소스 정리
더 이상 필요하지 않은 경우 myResourceGroup 및 MC_myResourceGroup_myCluster_eastus 리소스 그룹을 삭제하여 이 자습서에서 만든 모든 리소스를 삭제합니다.
az group delete --name myResourceGroup
az group delete --name MC_myResourceGroup_myCluster_eastus
다음 단계
이 자습서에서는 다음을 수행합니다.
- AGIC 추가 항목을 사용하도록 설정하여 새 AKS 클러스터를 만들었습니다.
- AKS 클러스터에서 수신에 AGIC를 사용하여 샘플 애플리케이션을 배포했습니다.
AGIC에 대한 자세한 내용은 애플리케이션 게이트웨이 수신 컨트롤러란? 및 AKS 클러스터에 대한 AGIC 추가 항목을 사용하지 않도록 설정하고 다시 사용하도록 설정을 참조하세요.
기존 애플리케이션 게이트웨이를 사용하여 기존 AKS 클러스터에 애플리케이션 게이트웨이 수신 컨트롤러 추가 항목을 사용하도록 설정하는 방법을 알아보려면 다음 자습서를 진행하세요.