인포그랩
home
회사 소개
home

NGINX Ingress Controller 구축하기

소개

하나 이상의 서비스로 표시되는 애플리케이션을 Kubernetes 클러스터 외부의 클라이언트에 제공하는 가장 효율적인 방법은 Ingress 리소스를 사용하는 것입니다. 이러한 Ingress 리소스가 작동하려면 클러스터에 Ingress Controller가 실행 중이어야 합니다. CSP(클라우드 서비스 제공업체)에서 제공하는 Ingress Controller를 배포하거나 그외 여러 Ingress Controller 중에서 선택하여 배포할 수도 있습니다.
이번 실습에서는 엔지니어들이 가장 많이 사용하는 NGINX Ingress Controller를 배포하는 방법을 학습합니다.
이후 Kubernetes 클러스터에 배포하는 애플리케이션은 Ingress 리소스를 사용하여 외부에 노출할 수 있습니다.

NGINX Ingress Controller란?

Ingress 리소스는 클러스터 서비스의 외부 액세스를 관리하는 리소스입니다. 요청된 도메인과 경로를 기반으로 라우팅할 수 있는 리버스 프록시 유형입니다. Ingress Controller는 로드밸런서를 생성 및 연결하고 클러스터에 실행되고 있는 Ingress 리소스에 정의된 규칙에 따라 라우팅을 지원합니다. NGINX Ingress Controller는 이러한 트래픽 라우팅, 로드 밸런싱, 프록시 설정 등을 NGINX 기반으로 지원합니다.
NGINX Ingress Controller가 지원하는 기능은 다음과 같습니다.
콘텐츠(호스트 또는 경로) 기반 라우팅
로드 밸런싱
TLS/SSL 종료(termination)
리다이렉션
NGINX 스니펫 지원

학습내용

Kubernetes 환경에서 Helm Chart를 통해 Nginx Ingress Controller를 배포하는 방법
Nginx Ingress Controller로 생성된 NLB를 확인하고 DNS에 레코드 등록하는 방법

사전 준비사항

기본 요건

Kubernetes의 기본 개념
Load Balancer의 기본 개념
Service, Ingress 및 Ingress Controller의 기본 개념

필요 항목

NGINX Ingress Controller를 배포할 Kubernetes 클러스터 환경
ELB(Elastic Load Balancing)를 생성할 권한이 있는 AWS 계정
Route 53에 도메인 등록 및 레코드 생성이 가능한 AWS 계정
Route 53에 사용할 도메인에 대한 호스팅 영역(hosted zone)