제7장. 인그레스 및 게이트웨이 API
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
제6장에서는 쿠버네티스 서비스가 클러스터 내부와 외부 모두에서 애플리케이션에 접근할 수 있도록 하는 방법을 살펴보았습니다. 서비스는 레이어 4에서 들어오는 트래픽을 분산하는 방법을 제공하지만, 상위 레이어에서 세분화된 제어를 적용하는 기본 기능은 부족합니다. 이는 쿠버네티스 서비스가 TLS 종단 처리, 애플리케이션(레이어 7) 수준 파싱 및 필터링과 같은 일반적인 기능을 수행할 수 없음을 의미합니다. 이를 위해서는 인그레스 메커니즘이 필요합니다.
이 장에서는 Cilium이 Ingress와 그 후속인 Gateway API를 모두 지원하는 방식을 살펴봅니다. 다음을 배우게 됩니다:
-
각각의 정의, 차이점, 사용 시점
-
호스트 및 경로 라우팅, TLS 종료를 포함한 Ingress를 사용한 HTTP 서비스 게시 방법
-
Gateway API가 GatewayClass, Gateway 및 HTTPRoute 리소스와 어떻게 결합되는지, 그리고 경로가 리스너에 어떻게 연결되는지
-
경로, 헤더, 메서드, 쿼리 매개변수를 통해 레이어 7에서 트래픽을 매칭하고 라우팅하는 방법
-
트래픽 분할(50/50 ~ 99/1)을 통한 점진적 롤아웃 실행 및 결과 검증 방법
-
헤더 수정 및 HTTP 리디렉션을 통한 트래픽 형성 방법
-
서비스 및 메서드 매칭을 사용하여 GRPCRoute로 gRPC 처리하는 방법
-
GAMMA(서비스 메시용 게이트웨이 API)를 사용한 내부 트래픽 라우팅 방법
쿠버네티스에서 외부 트래픽 처리하기
에서는 4장에서 포드에 IP 주소가 할당되는 방식을 다루었고, 5장에서는 클러스터 내에서 포드들이 서로 통신하는 방법을 배웠습니다. 그러나 대부분의 마이크로서비스 아키텍처는 어느 시점에서 클러스터 외부로 일부 서비스를 노출하고 트래픽을 안전하게 라우팅해야 할 필요가 생깁니다.
기존 네트워크에서는 리버스 프록시나 로드 밸런서 같은 도구를 사용했습니다. 쿠버네티스에서는 클러스터로 트래픽을 라우팅하는 데 가장 일반적으로 배포되는 방법이 전통적으로 Ingress였습니다. Ingress는 클러스터 외부에서 클러스터 내부의 서비스로 HTTP 및 HTTPS 경로를 노출합니다. 트래픽 라우팅은 Ingress 리소스에 정의된 규칙에 의해 제어됩니다.
쿠버네티스는 이를 위한 표준 구현을 제공하지 않습니다. 대신 플랫폼 엔지니어는 Ingress 컨트롤러를 설치하고 구성해야 합니다. 이 프로그램은 쿠버네티스 API 서버에 연결하여 Ingress 리소스를 확인하고 이를 구현합니다.
쿠버네티스 문서에는 범용 리버스 프록시부터 완전한 API 게이트웨이에 이르기까지 다양한 Ingress 컨트롤러가 소개되어 있습니다. Cilium의 경우 이는 내장된 또 하나의 기능일 뿐이므로, 별도의 전용 도구를 관리할 때 발생하는 리소스 및 운영 부담을 피할 수 있습니다.
이제 직접 시도해 보겠습니다. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access