본문 바로가기
클라우드/쿠버네티스

🧭 Traefik으로 완성하는 쿠버네티스 Ingress 마스터 클래스

by gasbugs 2026. 2. 6.

Traefik은 단순히 트래픽을 넘겨주는 도구를 넘어, 클라우드 네이티브 환경의 유연성을 극대화해주는 강력한 무기입니다. 바로 실무에 적용할 수 있도록, 핵심 아키텍처부터 실전 코드까지 짜임새 있게 정리해 드립니다.

 


1. Traefik, 왜 대세인가요? 🤔

쿠버네티스 환경에서 Ingress Controller는 외부 요청이 내부 파드(Pod)로 도달하는 '관문' 역할을 합니다. 기존의 Nginx Ingress가 설정 파일 재시작에 의존했다면, Traefik은 처음부터 클라우드 네이티브를 위해 태어났습니다.

  • 자동 서비스 디스커버리: 새로운 서비스를 배포하면 Traefik이 API 서버를 감시하다가 실시간으로 라우팅 규칙을 생성합니다.
  • 강력한 대시보드: 현재 트래픽 상황과 라우팅 규칙을 직관적인 UI로 확인할 수 있습니다.
  • 미들웨어 중심 설계: 인증, 비율 제한(Rate Limit), 헤더 조작 등을 레고 블록처럼 끼워 넣을 수 있습니다.

2. Traefik의 4대 핵심 개념 이해하기 🏗️

Traefik의 통신 흐름은 매우 논리적입니다. 아래 4단계만 기억하면 됩니다.

  1. Entrypoints (문): 외부 트래픽이 들어오는 포트입니다. (예: HTTP 80, HTTPS 443)
  2. Routers (안내 데스크): 들어온 요청의 호스트 이름이나 경로를 보고 어디로 보낼지 결정합니다.
  3. Middlewares (검문소): 서비스에 도달하기 전, 요청을 가공하거나 검증합니다. (예: Auth, IP WhiteList)
  4. Services (목적지): 최종적으로 트래픽이 도달할 쿠버네티스의 Service 리소스입니다.

3. 실전! Traefik IngressRoute 설정하기 🛠️

Traefik은 표준 Ingress 오브젝트도 지원하지만, 자체 **CRD(Custom Resource Definition)**인 IngressRoute를 사용했을 때 그 진가가 드러납니다.

🔓 일반적인 HTTP 라우팅 예시

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: my-app-route
  namespace: default
spec:
  entryPoints:
    - web  # 80 포트
  routes:
    - match: Host(`my-app.com`) && PathPrefix(`/api`)
      kind: Rule
      services:
        - name: my-app-service
          port: 8080

🛡️ 미들웨어를 활용한 보안 강화 (Basic Auth)

강사님이 강조하시는 보안 요소를 추가해 보겠습니다.

# 1. 미들웨어 정의
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: test-auth
spec:
  basicAuth:
    secret: auth-secret # 사용자 정보가 담긴 Secret

---
# 2. IngressRoute에 미들웨어 적용
spec:
  routes:
    - match: Host(`secure-app.com`)
      kind: Rule
      middlewares:
        - name: test-auth # 위에서 정의한 미들웨어 연결
      services:
        - name: secure-app-service
          port: 80

4. Traefik vs Nginx Ingress: 무엇이 다른가? ⚖️

특징 Nginx Ingress Controller Traefik Proxy
설정 방식 Annotations 중심 (복잡함) CRD(IngressRoute) 중심 (명확함)
동적 변경 일부 재시작 필요 시점 존재 100% 동적 변경 (Zero Downtime)
대시보드 별도 툴 필요 (Grafana 등) 기본 내장 UI 제공
난이도 중 (Nginx 문법 이해 필요) 하 (직관적인 구조)

5. 강사님을 위한 강의 포인트 (Teaching Tips) 💡

수강생들에게 이 내용을 전달할 때 아래 흐름을 활용해 보세요.

  • 비유 활용: "Entrypoint는 건물의 정문, Router는 안내 표지판, Middleware는 보안 검색대, Service는 해당 부서 사무실입니다."
  • 실습 유도: "직접 IngressRoute를 배포하고 Traefik 대시보드에서 실시간으로 그래프가 변하는 모습을 확인해 보세요."
  • 보안 강조: 클라우드 네이티브 보안 강사님답게, TLS 인증서 자동 갱신(Let's Encrypt) 연동 부분을 강조하면 수강생들의 만족도가 매우 높을 것입니다.

태그: Traefik, Kubernetes, Ingress, CloudNative, DevOps, Infrastructure, Microservices