오늘날 클러스터 트래픽 제어의 핵심인 세 가지 방식을 블로그 형태로 정리해 드립니다. 오픈소스 Traefik을 활용하면 쿠버네티스 네이티브 기능인 Ingress와 Gateway 그리고 Traefik의 CRD인 IngressRoute 기능 모두 활용이 가능합니다. 여기서는 어떻게 이 기능을 위한 yaml 파일을 작성할 수 있는지 상세히 알아보도록 하겠습니다.

1. 🏛️ 클래식의 힘: 쿠버네티스 네이티브 Ingress
쿠버네티스 초기부터 트래픽의 관문 역할을 해온 Ingress는 가장 익숙하고 검증된 방식입니다. L7 부하 분산을 위한 표준 규격입니다.
- 동작 원리: Ingress 리소스는 규칙을 정의하고, 실제 처리는 Nginx나 Traefik 같은 컨트롤러가 담당합니다.
- 장점: 설정이 매우 단순하며, 거의 모든 클라우드 환경에서 표준으로 작동합니다.
- 한계: 복잡한 라우팅(Canary, 미러링 등)을 구현하려면 각 벤더별로 파편화된 Annotations에 의존해야 하며, 이는 설정의 가독성을 떨어뜨리는 주범이 됩니다.
📝 Ingress 매니페스트 예시
YAML
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: native-ingress
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: app.juhun.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-service
port:
number: 80
2. 🚀 차세대 표준: 쿠버네티스 네이티브 Gateway API
Ingress의 한계를 극복하기 위해 등장한 Gateway API는 역할 기반(Role-oriented) 설계가 핵심입니다. 대규모 인프라를 설계하는 엔지니어에게는 이 표준화된 구조가 큰 축복입니다.
- 역할 분리: 인프라 관리자(GatewayClass, Gateway)와 서비스 개발자(HTTPRoute)의 권한을 명확히 분리할 수 있습니다.
- 표준화된 고급 기능: Annotations 없이도 트래픽 가중치 분산, 헤더 조작 등을 표준 스펙으로 지원합니다.
- 유연성: L4(TCP/UDP)부터 L7까지 아우르는 통합 제어가 가능하여, 확장성이 매우 뛰어납니다.
📝 Gateway API (HTTPRoute) 예시
YAML
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
name: app-gateway-route
spec:
parentRefs:
- name: my-gateway
rules:
- matches:
- path: { type: PathPrefix, value: /api }
backendRefs:
- name: api-service-v1
port: 80
weight: 90
- name: api-service-v2 # 카나리 배포
port: 80
weight: 10
3. 🎨 최적화의 정수: Traefik CRD (IngressRoute)
표준도 좋지만, 특정 솔루션의 성능을 100% 끌어내고 싶을 때 우리는 **CRD(Custom Resource Definition)**를 선택합니다. Traefik의 IngressRoute는 특히 '직관성'과 '강력한 기능'을 동시에 제공합니다.
- 미들웨어 체이닝: 인증, 비율 제한, 에러 페이지 처리 등을 미들웨어 객체로 만들어 자유롭게 조립할 수 있습니다.
- Kubernetes Native: 쿠버네티스 스타일의 구문을 그대로 사용하면서도, 표준 Ingress보다 훨씬 세밀한 트래픽 제어가 가능합니다.
- 보안 최적화: TLS 설정이나 인증 처리가 매우 직관적이어서, 전문 분야인 보안 인프라 구축에 최적입니다.
📝 Traefik IngressRoute 예시
YAML
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: traefik-crd-route
spec:
entryPoints:
- websecure
routes:
- match: Host(`juhun-lab.com`) && PathPrefix(`/admin`)
kind: Rule
services:
- name: admin-service
port: 80
middlewares:
- name: ip-whitelist # 보안 미들웨어 적용
🧐 최종 비교 가이드
| 구분 | Ingress | Gateway API | Traefik CRD |
| 추천 대상 | 단순한 웹 서비스 배포 | 멀티 테넌시 기반 대형 클러스터 | Traefik의 기능을 풀파워로 쓰고 싶을 때 |
| 복잡도 | 낮음 (쉬운 시작) | 높음 (철저한 역할 분담) | 중간 (직관적인 CRD 구조) |
| 유연성 | 제한적 (Annotations 의존) | 매우 높음 (표준 규격) | 높음 (미들웨어 활용) |
💡 마무리하며
이미 느끼셨겠지만, 기술의 선택은 '무엇이 더 좋은가'가 아니라 '어떤 환경에 더 적합한가'의 문제입니다. 11월에 탄생한 막내와 보내시는 소중한 시간만큼이나, 우리의 클러스터도 이 세 가지 도구를 통해 더욱 견고하고 평온하게 관리되기를 바랍니다.
'클라우드 > 쿠버네티스' 카테고리의 다른 글
| 🚀 [K8s 심화] 쿠버네티스 확장하기: CRD(Custom Resource Definition) 완벽 가이드 (feat. CKAD) (0) | 2026.02.09 |
|---|---|
| [K8s 보안] 실전 CKAD 대비: NetworkPolicy로 마스터하는 포드 통신 제어 전략 (0) | 2026.02.07 |
| ⚓ Helm 4: 더 강력하고 안전해진 쿠버네티스 항해의 새로운 동반자 (0) | 2026.02.06 |
| Helm을 활용한 Traefik 쿠버네티스 설치하기 (0) | 2026.02.06 |
| 🧭 Traefik으로 완성하는 쿠버네티스 Ingress 마스터 클래스 (0) | 2026.02.06 |