마이그레이션 실행 전략
2026-02-14 작성2026-06-28 수정5분 읽기
정보
이 문서는 Gateway API 도입 가이드의 심화 가이드입니다. NGINX Ingress에서 Gateway API로의 실전 마이그레이션 전략을 제공합니다.
1. 사전 요구사항: CRD 설치
모든 Gateway API 구현체는 공통적으로 Kubernetes Gateway API CRDs를 필요로 합니다.
1.1 Gateway API 표준 CRDs
# Gateway API v1.5.1 표준 설치
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.1/standard-install.yaml
# 실험적(Experimental) 기능 포함 설치 (선택사항)
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/experimental-install.yaml
설치되는 CRDs:
gatewayclasses.gateway.networking.k8s.iogateways.gateway.networking.k8s.iohttproutes.gateway.networking.k8s.ioreferencegrants.gateway.networking.k8s.iogrpcroutes.gateway.networking.k8s.io(Experimental)tcproutes.gateway.networking.k8s.io(Experimental)tlsroutes.gateway.networking.k8s.io(Experimental)udproutes.gateway.networking.k8s.io(Experimental)
1.2 각 컨트롤러별 추가 설치
AWS Native (ALB + NLB Gateway)
# AWS Load Balancer Controller v3.0+ 설치 (Gateway API 지원)
helm repo add eks https://aws.github.io/eks-charts
helm repo update
# IRSA (IAM Role for Service Account) 생성
eksctl create iamserviceaccount \
--cluster=<클러스터명> \
--namespace=kube-system \
--name=aws-load-balancer-controller \
--role-name AmazonEKSLoadBalancerControllerRole \
--attach-policy-arn=arn:aws:iam::aws:policy/AWSLoadBalancerControllerIAMPolicy \
--approve
# Helm 설치
helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
-n kube-system \
--set clusterName=<클러스터명> \
--set serviceAccount.create=false \
--set serviceAccount.name=aws-load-balancer-controller \
--set enableGatewayAPI=true # Gateway API 활성화 (핵심!)
# 설치 확인
kubectl get deployment -n kube-system aws-load-balancer-controller
NGINX Gateway Fabric
# NGINX Gateway Fabric 설치
kubectl apply -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.6.0/crds.yaml
kubectl apply -f https://github.com/nginxinc/nginx-gateway-fabric/releases/download/v1.6.0/nginx-gateway.yaml
# 설치 확인
kubectl get pods -n nginx-gateway
kubectl get gatewayclass nginx
Envoy Gateway
# Envoy Gateway 설치
helm install eg oci://docker.io/envoyproxy/gateway-helm \
--version v1.3.0 \
--namespace envoy-gateway-system \
--create-namespace
# 설치 확인
kubectl get pods -n envoy-gateway-system
kubectl get gatewayclass envoy-gateway
Cilium Gateway API
Cilium 설치 시 gatewayAPI.enabled=true로 이미 활성화되어 있으므로 별도 설치 불필요.
# GatewayClass 확인
kubectl get gatewayclass cilium