Ingress Controller

로로·2025년 4월 5일

Ingress Controller❓

  • Kubernetes에서 외부 요청을 내부 서비스로 전달하는 역할을 하는 컴포넌트
  • HTTP/HTTPS 요청 -> Ingress 리소스에 정의된 규칙에 따라 적절한 서비스로 라우팅
  • NGINX, Traefik, HAProxy, Istio
  • Ingress Controller 자체는 Pod(Deployment, Daemonset) 으로 실행되며, 외부와 연결되기 위해 Service로 노출 필요

👉🏻 즉, 클러스터의 게이트웨이 역할을 하며, 하나로 많은 앱의 도메인/경로를 관리 가능


Routing 방법

1️⃣ 호스트 기반 라우팅 (Host-based Routing)

  • 도메인별로 라우팅
app1.example.com → app1 서비스
app2.example.com → app2 서비스

2️⃣ 경로 기반 라우팅 (Path-based Routing)

  • 같은 도메인 안에서도 요청 URL 경로(path)에 따라 라우팅
example.com/api → api-service
example.com/admin → admin-service

3️⃣ 포트 기반 라우팅 (Port-based)

  • 다른 포트(ex: 3000, 8080 등)는 일반적으로 Ingress Controller 외부의 LoadBalancer나 프록시에서 처리

👉🏻 Ingress Controller 내부가 아니라 외부 구성(NGINX, Envoy, 외부 LB)에서 담당

📍 Host, Path 기반 라우팅이 일반적이고,
이것 외에도 Header(특정 HTTP 헤더 값), 쿠키(세션 또는 A/B 테스트용), 정책(헤더 + 경로 + 메소드) Istio, 포트 기반으로 라우팅이 가능

profile
청로하~🏝️

0개의 댓글