이 글에서는 EKS환경에서 ALB Controller를 사용하여 Gateway API를 사용하는 방법을 다룹니다. AWS EKS에서 Gateway API를 사용하려면 2025년 12월 기준으로 VPC Lattice만 stable이며, ALB Controller는 실험 단계입니다.
목차
- ALB controller의 Gateway API
- ALB controller가 Gateway API를 사용하려면?
- 실습
ALB controller의 Gateway API
EKS 환경에서 Gateway API를 사용하려면 2025년 12월 기준으로 VPC Lattice만 stable입니다. AWS ALC 또는 ALB Controller는 실험 단계입니다. 제가 ALB Controller로 Gateway API를 사용해보니 설정이 많이 없고 불안정했습니다. 불안정하다는 뜻은 gateway API 설정이 잘못되면, ALB Controller pod에서 메모리 참조오류가 발생하여 CrashLoopBackOff가 발생하고 계속 pod가 재부팅되었습니다.

ALB Controller의 설정 원리는 아래 그림과 같습니다. Ingress와 비교한다면, ingress 또는 service annotations의 설정을 전부 Kubernetes CRD로 옮겨야 합니다.

kubernetes와 AWS layer를 매핑시키면 아래 구조가 됩니다.

ALB controller가 Gateway API를 사용하려면?
1. ALB Controller: v2.13.0 이상
2. ALB Controller Feature Flag 설정
2025년 12월 기준, ALB Controller에서 Gateway API를 사용하려면 feature flag를 활성화해야 합니다.
kubectl get deployment -n kube-system aws-load-balancer-controller \
-o jsonpath='{.spec.template.spec.containers[0].args}' | jq -r '.[]' | grep -i feature
3. ExternalDNS v0.10.0이상
4. ExternalDNS에서 gateway API호환 설정
ExternalDNS args의 source 부분에 gateway를 설정해야, Gateway API에 설정된 hostname을 도메인으로 만듭니다.
containers:
- name: external-dns
image: registry.k8s.io/external-dns/external-dns:v0.20.0
args:
# Add desired Gateway API Route sources.
- --source=gateway-httproute
- --source=gateway-grpcroute
- --source=gateway-tlsroute
- --source=gateway-tcproute
- --source=gateway-udproute5. Gateway API CRD 설치
Kubernetes Gateway API CRD를 설치합니다.
# Standard Gateway API CRDs
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/standard-install.yaml
# Experimental Gateway API CRDs, Used for L4 Routes
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/experimental-install.yaml
CRD 설치 확인:
kubectl get crd gatewayclasses.gateway.networking.k8s.io
kubectl get crd gateways.gateway.networking.k8s.io
kubectl get crd httproutes.gateway.networking.k8s.io
실습
ALB controller의 실습자료는 저의 github에 공개되어 있습니다.
- internal ALB 생성: https://github.com/choisungwook/portfolio/blob/master/kubernetes/gatewayAPI/manifests/eks/01_private_alb_http_simple
참고자료
1. ALB controller 문서: https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/gateway/gateway/
2. ExternalDNS 설정: https://github.com/kubernetes-sigs/external-dns/blob/master/docs/sources/gateway-api.md
이하공백
'전공영역 공부 기록' 카테고리의 다른 글
| Kubernetes Gateway API 간단히 알아보기 (0) | 2025.12.30 |
|---|---|
| eBPF와 함께하는 Cilium 핸즈온: Pod부터 Service 통신까지 (1) | 2025.12.27 |
| 공식문서로 이해하는 eBPF 입문 (0) | 2025.12.23 |
| React server component 취약점 간단히 분석 - CVE-2025-55182, CVE-2025-66478 (0) | 2025.12.11 |
| EKS ArgoCD Capabilities (1) | 2025.12.04 |