주의
Kubernetes SIG 네트워크 및 보안 대응 위원회에서는 Ingress NGINX 프로젝트의 퇴역을 발표했으며, 유지 관리는 2026년 3월에 종료될 예정입니다. 현재 NGINX에서 애플리케이션 라우팅 추가 기능을 사용하는 AKS 클러스터에는 즉각적인 조치가 필요하지 않습니다. Microsoft는 2026년 11월까지 라우팅 추가 기능 애플리케이션 인그레스 리소스에 대한 중요한 보안 패치를 공식적으로 지원할 예정입니다.
AKS는 수신 및 L7 트래픽 관리의 장기적 표준으로 게이트웨이 API로 전환함으로써 업스트림 Kubernetes와 보조를 맞추고 있습니다. 현재 설정에 따라 마이그레이션 경로를 계획하는 것이 좋습니다.
- 애플리케이션 라우팅 추가 기능 사용자: 프로덕션 워크로드는 2026년 11월까지 완벽하게 지원됩니다. 게이트웨이 API 기반 수신 트래픽 관리 환경을 위한 애플리케이션 라우팅 게이트웨이 API 구현으로 마이그레이션합니다.
-
OSS NGINX 사용자에게 는 다음과 같은 몇 가지 옵션이 있습니다.
- 장기 게이트웨이 API 마이그레이션을 계획하는 동안 2026년 11월까지 공식 지원을 활용하려면 NGINX를 사용하여 애플리케이션 라우팅 추가 기능으로 마이그레이션합니다.
- 게이트웨이 API 기반 수신 트래픽 관리 환경을 위한 애플리케이션 라우팅 게이트웨이 API 구현으로 마이그레이션합니다.
- Application Gateway for Containers로 마이그레이션하여 Ingress API와 Gateway API를 모두 지원합니다.
- 서비스 메시 사용자: 서비스 메시를 채택하려는 경우 Istio 기반 서비스 메시 추가 기능을 고려합니다. 지금은 Istio Ingress를 사용하고, 이제 정식 출시된 Istio Gateway API로 마이그레이션할 계획을 세우세요.
AKS(Azure Kubernetes Service) 클러스터에서 실행되는 애플리케이션으로 HTTP(Hypertext Transfer Protocol) 및 보안(HTTPS) 트래픽을 라우팅하는 한 가지 방법은 Kubernetes 수신 개체를 사용하는 것입니다. NGINX에서 애플리케이션 라우팅 추가 기능을 사용하도록 설정하면 AKS 클러스터에서 수신 컨트롤러를 만들고 구성하고 관리합니다.
이 문서에서는 관리되는 NGINX 수신 컨트롤러를 사용하도록 설정하고 AKS 클러스터의 애플리케이션에 트래픽을 라우팅하도록 수신 개체를 구성하는 방법을 보여 줍니다.
NGINX 기능을 사용하는 애플리케이션 라우팅 추가 기능
NGINX를 사용하는 애플리케이션 라우팅 추가 항목 기능은 다음을 제공합니다:
- Kubernetes NGINX 수신 컨트롤러를 기반으로 한 관리형 NGINX 수신 컨트롤러의 쉬운 구성.
- 공용 및 프라이빗 영역 관리를 위해 Azure DNS 와 통합합니다.
- Azure Key Vault에 저장된 인증서를 사용한 SSL 종료.
다른 구성에 대해서는 다음을 참조하시기 바랍니다:
Important
2027년 9월 30일부터 AKS(Azure Kubernetes Service)는 더 이상 OSM(Open Service Mesh) 추가 기능을 지원하지 않습니다. 업스트림 Open Service Mesh 프로젝트가 사용 중지되었습니다.
클러스터에서 OSM 추가 기능을 사용하는 경우 지원 종료 날짜 전에 Istio 추가 기능으로 마이그레이션합니다. 이 사용 중지 알림은 관리되는 OSM 추가 기능에만 적용되며 오픈 소스 또는 자체 관리 서비스 메시 설치를 다루지 않습니다. 마이그레이션 단계는 OSM 추가 기능에서 Istio 추가 기능으로의 마이그레이션 지침을 참조하세요. AKS 공지 사항 및 업데이트에 대한 정보를 유지하려면 AKS 릴리스 정보를 따르세요.
필수 구성 요소
- Azure 구독 Azure 구독이 없는 경우 무료 계정을 만들 수 있습니다.
- Azure CLI 버전 2.54.0 이상이 설치되고 구성되어 있어야 합니다
az --version을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.
제한 사항
애플리케이션 라우팅 추가 항목 기능은 최대 5개의 Azure DNS 영역을 지원합니다.
애플리케이션 라우팅 추가 기능은 관리형 ID가 활성화된 AKS 클러스터에서만 사용 설정할 수 있습니다.
추가 항복 기능과 통합된 모든 전역 Azure DNS 영역은 동일한 리소스 그룹 내에 있어야 합니다.
추가 항목 기능과 통합된 모든 전역 프라이빗 Azure DNS 영역은 동일한 리소스 그룹 내에 있어야 합니다.
네임스페이스에서
ConfigMap수신-ngix 편집은app-routing-system지원되지 않습니다.코드 조각 주석 값이 다음 차단된 값과 일치하면 수신이 구성되지 않습니다.
차단된 값 Effect load_module수신이 구성되지 않았습니다. lua_package수신이 구성되지 않았습니다. _by_lua수신이 구성되지 않았습니다. location수신이 구성되지 않았습니다. root수신이 구성되지 않았습니다. proxy_pass수신이 구성되지 않았습니다. serviceaccount수신이 구성되지 않았습니다. {수신이 구성되지 않았습니다. }수신이 구성되지 않았습니다. '수신이 구성되지 않았습니다. 추가 기능은 관리하는 수신 nginx 프록시 Pod에 Microsoft 관리되지 않는 사이드카(예: 사용자 지정 원격 분석, 로깅 또는 보안 에이전트)를 삽입하는 것을 공식적으로 지원하지 않습니다. 관리형 프록시 Pod에 자체 사이드카를 주입하기로 선택한 경우, 발생하는 모든 문제에 대해 Microsoft는 최선의 노력 수준의 지원만 제공합니다.
Azure CLI 사용하여 애플리케이션 라우팅 추가 기능 사용
새 클러스터에서 활성화하십시오
신규 클러스터에서 애플리케이션 라우팅을 활성화하려면 az aks create 해당 플래그를 지정하여 --enable-app-routing 명령어를 사용하십시오.
az aks create \
--resource-group <resource-group-name> \
--name <cluster-name> \
--location <location> \
--enable-app-routing \
--generate-ssh-keys
기존 클러스터에서 활성화하십시오
기존 클로스터에서 애플리케이션 라우팅을 활성화하려면 az aks approuting enable 해당 내용을 사용하십시오.
az aks approuting enable --resource-group <resource-group-name> --name <cluster-name>
AKS 클러스터에 연결
로컬 컴퓨터에서 Kubernetes 클러스터에 연결하려면 Kubernetes 명령줄 클라이언트인 kubectl을 사용합니다. 해당 명령어를 사용하여 로컬에 az aks install-cli 설치할 수 있습니다. Azure Cloud Shell을 사용하면 kubectl 이 이미 설치되어 있습니다.
kubectl 명령을 사용하여 Kubernetes 클러스터에 연결하도록 az aks get-credentials을 구성합니다.
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
애플리케이션을 배포하십시오
Kubernetes 수신 개체는 수신 컨트롤러에 대한 라우팅 규칙을 정의합니다. 애플리케이션 라우팅 추가 기능의 관리되는 수신 클래스 및 지원되는 주석을 사용하여 컨트롤러가 트래픽을 처리하는 방법을 구성합니다.
명령을 사용하여
aks-store예시 Pod를 실행하는kubectl create namespace라고 하는 애플리케이션 네임스페이스를 생성합니다.kubectl create namespace aks-store다음 YAML 매니페스트 파일을 사용하여 AKS 저장소 애플리케이션을 배포하십시오.
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
이 매니페스트는 배포 product-serviceorder-service및 store-front 해당 서비스를 만듭니다rabbitmq. 서비스는 store-front 다음 섹션에서 수신이 라우팅하는 포트 80을 노출합니다.
수신 개체를 생성하십시오
애플리케이션 라우팅 추가 기능을 사용하도록 설정하면 webapprouting.kubernetes.azure.com 이라는 수신 클래스가 만들어집니다. 추가 기능의 관리되는 NGINX 수신 컨트롤러를 사용하도록 수신 개체에서 이 클래스를 지정합니다.
다음 YAML 매니페스트를 복사하여 ingress.yaml 이라는 새 파일에 저장한 후 로컬 컴퓨터에 보관합니다.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: Prefix다음 명령어를 사용하여 수신 리소스를
kubectl apply생성하십시오.kubectl apply -f ingress.yaml -n aks-store다음 예시 출력은 생성된 리소스를 보여줍니다.
ingress.networking.k8s.io/store-front created
관리되는 수신 리소스 확인
사용자는 명령을 사용하여 관리되는 수신이 만들어졌는지 kubectl get ingress 확인할 수 있습니다.
kubectl get ingress -n aks-store
수신이 성공적으로 생성되면 아래의 다음 예시와 같은 출력 결과를 확인할 수 있습니다:
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
브라우저에서 수신 컨트롤러의 공용 IP 주소를 가리켜 AKS 저장소가 작동하는지 확인할 수 있습니다. 다음 명령은 부하 분산 장치가 네임스페이스의 관리되는 NGINX 수신 컨트롤러 서비스에 nginxapp-routing-system 할당한 외부 IP 주소를 검색합니다.
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
애플리케이션 라우팅 추가 항목 기능을 제거하십시오
연결이 된 네임스페이스를 제거하려고 하면 kubectl delete namespace 명령을 사용하십시오.
kubectl delete namespace aks-store
클러스터에서 애플리케이션 라우팅 추가 항목 기능을 제거하려고 한다면 az aks approuting disable 명령을 사용하십시오.
az aks approuting disable --name <cluster-name> --resource-group <resource-group-name>
참고
애플리케이션 라우팅 추가 기능을 사용하지 않도록 설정할 때 클러스터로의 잠재적 트래픽 중단을 방지하기 위해 configMaps, 비밀 및 컨트롤러를 실행하는 배포 를 비롯한 일부 Kubernetes 리소스는 클러스터에 남아 있습니다. 해당 리소스는 앱 라우팅 시스템 네임스페이스내부에 있습니다. 만약해서 리소스가 더 이상 필요하지 않는 경우라면 아래를 사용하여 해당 리소스를 제거할 수 있습니다 kubectl delete ns app-routing-system.
관련 콘텐츠
- 애플리케이션 라우팅 게이트웨이 API 구현을 사용하도록 설정하여 Kubernetes Gateway API를 사용하여 수신 트래픽을 관리합니다.
- 사용자 지정 수신 구성 구성은 고급 수신 구성을 만드는 방법을 보여 줍니다. Azure DNS 사용하여 DNS 영역을 관리하고 보안 수신을 설정하는 사용자 지정 도메인을 구성합니다.
- Azure 내부 부하 분산 장치와 통합하고 특정 도메인을 확인하기 위한 프라이빗 엔드포엔트의 DNS 확인을 활성화하도록 프라이빗 Azure DNS 영역을 구성하여 하려면 Azure 프라이빗 DNS 영역을 위한 내부 NGINX 수신 컨트롤러 구성을 참조하십시오.
- 애플리케이션의 성능 및 사용량 분석의 일환으로 Grafana의 Prometheus (미리 보기)에서 애플리케이션 라우팅 추가 기능에 포함된 수신-nginx 컨트롤러 메트릭을 모니터링하는 방법에 대해 알아봅니다.