Kubernetes Ingress 컨트롤러란 무엇인가요?

원형 건물의 위쪽 전망

작성자

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Kubernetes Ingress 컨트롤러란 무엇인가요?

Kubernetes Ingress 컨트롤러는 Kubernetes 환경에서 실행되는 애플리케이션으로 들어오는 트래픽을 관리하는 특수 소프트웨어 구성 요소로, 외부 사용자와 컨테이너화된 서비스 간의 다리 역할을 합니다.

현대 기업은 수십 또는 수백 개의 마이크로서비스로 구축된 분산 애플리케이션 및 워크로드에 크게 의존합니다. 적절한 트래픽 오케스트레이션이 없으면 각 서비스에 자체 퍼블릭 엔드포인트가 있어야 하는데, 이로 인해 심각한 관리 및 보안 문제가 발생할 수 있습니다.

예를 들어, 의료 플랫폼에는 환자 포털, 의료진 대시보드, 청구 시스템 및 규정 준수 보고를 위한 별도의 액세스 포인트가 필요할 수 있는데, 이러한 접근 방식은 비용이 많이 들고 운영이 복잡해집니다.

Kubernetes Ingress 컨트롤러는 애플리케이션 진입점에서 로드 밸런서 및 지능형 트래픽 라우터 역할을 하여 이 문제를 해결합니다. 외부 사용자가 내부 서비스에 액세스할 수 있는 중앙 집중식 트래픽 경로를 설정합니다.

Kubernetes 에코시스템은 GitHub와 같은 플랫폼에서 사용할 수 있는 오픈 소스 도구(예: NGINX, Traefik)와 조직의 특정 요구 사항을 충족하도록 설계된 독점 솔루션을 비롯한 다양한 Ingress 컨트롤러를 제공합니다.

전문가의 인사이트를 바탕으로 한 최신 기술 뉴스

Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.

감사합니다! 구독이 완료되었습니다.

구독한 뉴스레터는 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.

Kubernetes란 무엇인가요?

Google에서 처음 개발하여 2015년 Cloud Native Computing Foundation(CNCF)에 기증한 Kubernetes는 현재 대부분의 Fortune 500대 기업에 필수적인 IT 인프라를 지원합니다. 따라서 Ingress 컨트롤러 관리는 기업 운영에 매우 중요합니다. 2022년 설문조사에 따르면 96%의 조직이 프로덕션 환경에서 Kubernetes를 사용하거나 이 기술의 도입을 평가하고 있습니다.1

Kubernetes가 등장하기 전에 애플리케이션은 일반적으로 전용 서버나 가상 머신(VM)에서 실행되었기 때문에 확장 비용이 높고 시간도 많이 걸렸습니다. Kubernetes는 모든 종속성과 함께 애플리케이션을 패키징하는 이식 가능 경량형 유닛인 컨테이너를 도입했습니다.

Kubernetes는 대규모 컨테이너 오케스트레이션을 도입하여 DevOps 워크플로 및 애플리케이션 배포에 혁명을 일으켰습니다. 이 오픈 소스 플랫폼은 분산된 인프라 전반에서 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하여 개발 팀과 운영 팀 간의 원활한 협업을 가능하게 합니다.

Kubernetes는 애플리케이션을 파드로 구성합니다. 파드는 하나 이상의 컨테이너(일반적으로 Docker 컨테이너)로 구성된 가장 작은 배포 가능 단위입니다. 이러한 파드는 클러스터 내의 작업자 노드에서 실행되며, 컨트롤 플레인은 모든 클러스터 작업을 조정합니다. 서비스는 파드 그룹에 안정적인 네트워크 ID를 제공하여 안정적인 통신 패턴을 가능하게 합니다.

Ingress 컨트롤러는 일반적으로 Kubernetes API를 통해 클러스터 상태를 모니터링하는 특수한 파드로 배포됩니다. 이러한 컨트롤러는 트래픽 라우팅 규칙을 정의하는 구성 개체인 Ingress 리소스의 변경 사항을 추적하고 라우팅 테이블을 자동으로 업데이트하여 새로운 애플리케이션 배포 또는 구성 업데이트를 반영합니다.

IBM Cloud

Red Hat OpenShift AI on IBM Cloud: AI 워크로드 배포

Red Hat OpenShift on IBM Cloud를 통해 AI 기능을 활용하세요. 이 영상에서는 확장가능한 머신 러닝 운영 플랫폼으로 AI 워크로드를 효율적으로 구축, 배포 및 관리하는 방법을 살펴보겠습니다.

Kubernetes Ingress란 무엇인가요?

Ingress 컨트롤러의 작동 방식을 이해하려면 외부 트래픽을 Kubernetes 클러스터 내 서비스로 보내는 라우팅 규칙을 정의하는 API 리소스(또는 Ingress 오브젝트)인 Kubernetes Ingress를 이해하는 것이 중요합니다.

Kubernetes Ingress는 들어오는 네트워크 트래픽이 클라우드 네이티브 컨테이너화된 애플리케이션 환경으로 이동하는 것을 가리키는 일반적인 용어인 인그레스와는 다릅니다. Kubernetes에서 Ingress는 특히 들어오는 트래픽이 다른 서비스로 라우팅되는 방법을 관리하는 규칙 및 구성 집합을 나타냅니다. 반면, 넓은 의미의 인그레스는 시스템으로 유입되는 트래픽을 의미하고, 이그레스는 시스템에서 유출되는 트래픽을 의미합니다.

Kubernetes의 인그레스 및 이그레스에 대해 자세히 알아보세요.

Kubernetes Ingress는 Kubernetes 클러스터 내 서비스에 대한 외부 액세스를 관리하기 위한 선언적 접근 방식을 제공합니다. 개별 서비스(예: NodePort, LoadBalancer 서비스)를 인터넷에 직접 노출하는 대신 Ingress는 여러 기준에 따라 요청을 지능적으로 라우팅하는 제어된 액세스 계층을 생성합니다. 이 기능을 사용하면 일반적으로 Kubernetes 클러스터 내에서 ClusterIP를 사용하여 노출되는 서비스에 대한 외부 트래픽을 효율적으로 관리할 수 있습니다.

Kubernetes Ingress는 두 가지 상호 보완적인 구성 요소를 통해 작동합니다.

Ingress 리소스

Ingress 리소스(Kubernetes 리소스 또는 Kubernetes API 객체라고도 함)는 라우팅 규칙을 정의합니다. YAML 또는 JSON으로 정의되며, 인그레스 규칙, SSL 인증서, 인증 요구 사항, 트래픽 정책을 지정합니다.

예를 들어, 사용자는 ingressClassName 필드를 사용하여 리소스를 관리할 Ingress 컨트롤러를 결정하여 클러스터에서 특정 컨트롤러로 트래픽을 방향 지을 수 있습니다.

Ingress 컨트롤러

Ingress 컨트롤러는 구성 규칙을 읽고 적용하는 소프트웨어 구성 요소로, 고급 트래픽 기능을 갖춘 리버스 프록시 역할을 합니다.

Kubernetes Ingress 컨트롤러는 어떻게 작동하나요?

TCP, UDP 및 HTTP/HTTPS 경로와 같은 기존 4계층 로드 밸런서는 IP 주소 및 포트만을 기반으로 트래픽을 분산합니다. 반면 Kubernetes 수신 컨트롤러는 (애플리케이션 계층) 7계층에서 작동하므로 보다 정교한 라우팅이 가능합니다.

Kubernetes Ingress API 및 HTTPRoute와 같은 기능을 활용하여 Ingress 컨트롤러는 다음과 같은 자세한 HTTP 관련 속성을 기반으로 라우팅 결정을 내립니다.

  • URL 경로 및 호스트 이름
  • HTTP 헤더 및 메서드
  • 콘텐츠 및 쿠키 요청
  • 인증 토큰 및 사용자 컨텍스트

이러한 결정은 라우팅 정책 및 기타 요구 사항을 지시하는 구성 규칙을 기반으로 합니다. Ingress 컨트롤러는 이러한 구성의 변경 사항을 지속적으로 모니터링하여 수동 개입 없이 라우팅 동작을 자동으로 업데이트하고 원활한 트래픽 분산 및 보안 관리를 보장합니다.

Kubernetes 클러스터는 여러 개의 Ingress 컨트롤러를 동시에 실행하여 각각 다른 트래픽 유형 또는 애플리케이션을 처리할 수 있습니다. 각 컨트롤러는 이벤트 중심 방식으로 작동하여 사양, 주석 및 메타데이터를 읽고 실행 가능한 라우팅 명령으로 변환하여 Ingress 리소스의 변경에 대응합니다.

Kubernetes Ingress 컨트롤러의 주요 기능

요청 처리

Kubernetes Ingress 컨트롤러는 들어오는 요청을 검사하고 호스트 이름, DNS 이름과 같은 사전 정의된 규칙에 따라 라우팅 결정을 내립니다. 또한 HTTP 및 HTTPS 트래픽을 처리하고, SSL 종료를 수행하고, 여러 서비스 인스턴스에서 지능적인 로드 밸런싱 결정을 내립니다.

구성 관리

Kubernetes Ingress 컨트롤러는 네임스페이스 전반에 걸친 Ingress 리소스 변경 사항을 감지하기 위해 Kubernetes API를 지속적으로 모니터링합니다. 이러한 변경 사항이 kubectl, CI/CD 파이프라인 또는 기타 도구(예: Helm, Terraform)를 통해 적용되더라도, 컨트롤러는 수동 개입이나 서비스 재시작 없이 라우팅 규칙을 자동으로 업데이트합니다.

로드 밸런싱

대부분의 Kubernetes Ingress 컨트롤러에 내장된 로드 밸런싱 기능은 수신 요청을 동일한 서비스의 여러 인스턴스에 분산하여 최적의 성능을 보장하고 단일 인스턴스에 과부하가 걸리는 것을 방지합니다.

TLS 관리

최신 Kubernetes 수신 컨트롤러에는 TLS 종료, 자동 인증서 프로비저닝, 갱신 및 보안 통신 적용과 같은 정교한 SSL/TLS 관리 능력이 포함되어 있습니다.

상태 점검

고급 Kubernetes Ingress 컨트롤러는 백엔드 서비스의 상태를 지속적으로 모니터링하고 장애가 발생한 인스턴스로부터 트래픽을 자동으로 라우팅하여 고가용성과 향상된 사용자 경험을 보장합니다.

Kubernetes Ingress 컨트롤러 사용 사례

애플리케이션 통합

대규모 조직은 Ingress 컨트롤러를 사용하여 통합 액세스 포인트 뒤에 수백 개의 내부 애플리케이션을 통합합니다. 이 접근 방식은 중앙 집중식 정책 시행을 통해 보안을 강화하는 동시에 인프라 비용을 절감합니다. 글로벌 제조 회사는 단일 Ingress 컨트롤러 배포를 통해 여러 지역 ERP 시스템, 공급망 애플리케이션 및 고객 포털로 요청을 라우팅할 수 있습니다.

개발 및 스테이징 환경

개발 팀은 Ingress 컨트롤러를 사용하여 새로운 기능을 테스트하기 위한 별도의 환경을 만듭니다. 팀은 새로운 테스트 환경을 자동으로 설정하고 개발 중인 기능에 따라 각 환경에 적합한 트래픽을 전달할 수 있습니다.

파트너 및 공급업체 통합

기업은 Ingress 컨트롤러를 사용하여 파트너 및 공급 업체와 내부 API를 안전하게 공유할 수 있습니다. 각 조직마다 서로 다른 액세스 권한과 사용 제한을 설정할 수 있으며, 별도의 인프라 구축 없이 단일 시스템을 통해 모두 관리할 수 있습니다.

글로벌 트래픽 분산

다국적 조직은 글로벌 트래픽 관리 전략의 일환으로 Ingress 컨트롤러를 구현하여 일관된 보안 및 모니터링 정책을 유지하면서 사용자를 지리적으로 최적화된 데이터 센터로 라우팅합니다.

규정 준수 및 감사 요구 사항

규제 대상 산업에서는 Ingress 컨트롤러를 사용하여 필수 로깅, 액세스 제어(페이지 생성 시 추가) 및 데이터 거버넌스 정책을 구현합니다. 모든 외부 액세스는 Ingress 계층을 통해 중앙에서 모니터링하고 감사할 수 있습니다.

Kubernetes Ingress 컨트롤러의 이점

  • 인프라 통합: 기존 아키텍처는 각 애플리케이션마다 전용 로드 밸런서가 필요하기 때문에 상당한 하드웨어 및 운영 비용이 발생합니다. Ingress 컨트롤러를 통해 조직은 공유 인프라를 기반으로 하는 여러 애플리케이션을 통합하여 로드 밸런싱 비용을 절감하고 리소스 활용도를 개선할 수 있습니다.
  • 가속화된 개발 주기: 개발 팀은 네트워크 관리자를 참여시키거나 외부 로드 밸런서를 구성하지 않고도 새로운 기능을 배포하고 테스트할 수 있습니다. Ingress 컨트롤러는 라우팅 변경 사항이 버전 제어 및 자동화된 배포 파이프라인을 통해 관리되는 GitOps 워크플로를 지원합니다.
  • 향상된 관측 가능성 : 향상된 관측 가능성을 제공하기 위해 최신 Ingress 컨트롤러는 애플리케이션 사용 패턴, 사용자 행동 및 성능 병목 현상에 대한 자세한 분석을 제공합니다. 이러한 가시성을 통해 용량 계획, 기능 도입 및 사용자 경험 최적화에 대한 데이터 기반 의사 결정이 가능해집니다.
  • 자동화된 보안 시행: 조직은 여러 시스템에 걸쳐 보안 정책을 구성하는 대신, Ingress 컨트롤러 정책을 통해 인증, 권한 부여, 속도 제한, 웹 애플리케이션 방화벽(WAF) 규칙, DDoS 보호를 시행할 수 있습니다. 보안 업데이트는 모든 애플리케이션에 즉시 배포될 수 있습니다.
  • 클라우드 이식성: 클라우드별 로드 밸런싱 서비스와 달리 Ingress 컨트롤러는 다양한 클라우드 제공업체 및 온프레미스 인프라에서 일관된 기능을 제공합니다. 아키텍처를 변경하지 않고도 환경 간에 애플리케이션을 마이그레이션할 수 있습니다.
  • 동적 확장 기능: Ingress 컨트롤러는 실시간 트래픽 상황, 백엔드 용량, 구성된 정책에 따라 라우팅 패턴을 자동으로 조정할 수 있습니다. 이 기능을 사용하면 변화하는 비즈니스 상황에 맞게 조정되는 정교한 트래픽 셰이핑(traffic shaping)이 가능합니다.

Ingress 컨트롤러의 과제

  • 성능 고려 사항: 모든 외부 트래픽은 Ingress 컨트롤러를 통해 흐르므로 프로덕션 환경에서는 병목 현상이 발생할 가능성이 있습니다. 조직은 용량을 신중하게 계획하고 적절한 모니터링을 구현하며 중복 전략을 설계해 고가용성을 보장해야 합니다.
  • 학습 곡선 및 운영 오버헤드: 팀은 Kubernetes 네트워킹 개념, YAML 구성 관리 및 분산 시스템 문제 해결에 대한 전문 지식을 구축해야 하며, 이를 위해서는 상당한 교육과 운영 조정이 필요할 수 있습니다.

Kubernetes Ingress 컨트롤러 옵션

올바른 Kubernetes Ingress 컨트롤러를 선택하는 것은 조직의 요구 사항, 기존 인프라, 팀 역량에 따라 달라집니다. 각 구현은 특정 사용 사례에 대한 고유한 이점을 제공합니다.

  • NGINX Ingress 컨트롤러: 가장 널리 채택된 옵션인 NGINX Ingress 컨트롤러(ingress-nginx)는 엔터프라이즈급 성능과 광범위한 사용자 정의 기능을 제공합니다. NGINX의 성숙한 에코시스템은 포괄적인 문서, 상용 지원 옵션 및 입증된 확장성을 제공합니다.
  • Traefik Ingress 컨트롤러: Traefik은 자동 서비스 검색 및 사용 편의성에 중점을 두고 최신 클라우드 네이티브 환경을 위해 설계되었습니다. Traefik은 Kubernetes 서비스가 자주 변경되는 동적 환경에서 탁월한 성능을 발휘하여 서비스 메시 및 컨테이너 레지스터리와의 기본 통합을 제공합니다.
  • HAProxy Ingress 컨트롤러: 업계 표준 HAProxy 로드 밸런서를 기반으로 구축된 HAProxy Ingress 컨트롤러는 트래픽이 많은 시나리오에서 강력한 성능을 제공합니다. 이 컨트롤러는 고급 로드 밸런싱 알고리즘, 자세한 통계 및 세분화된 트래픽 제어를 가능하게 합니다.
  • Istio Gateway: 포괄적인 Istio 서비스 메시 플랫폼의 일부인 Istio Gateway는 고급 트래픽 관리, 보안, 관측 가능성 기능을 제공합니다. 또한 Istio Gateway는 트래픽 분할, 장애 주입, 분산 추적과 같은 정교한 기능을 지원합니다.
  • 클라우드 공급자 솔루션: 주요 클라우드 제공업체는 플랫폼과 긴밀하게 통합되는 최적화된 Ingress 컨트롤러를 제공합니다. AWS Load Balancer 컨트롤러, Google Cloud Load Balancer, Azure Application Gateway Ingress 컨트롤러 및 IBM Cloud Application Load Balancer는 클라우드 네이티브 서비스와의 통합, 자동화된 확장 및 간소화된 청구를 제공합니다.
  • Envoy 기반 컨트롤러: Envoy 프록시(예: Ambassador 및 Emissary-Ingress)를 기반으로 구축된 Ingress 컨트롤러는 고급 관측 가능성을 통해 고성능 트래픽 관리를 제공합니다. 이 솔루션에는 일반적으로 내장형 인증, 속도 제한 및 API 게이트웨이 기능이 포함되어 있어, 포괄적인 API 관리 전략을 구축하는 조직에 적합합니다.
관련 솔루션
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud는 완전 관리형 OpenShift 컨테이너 플랫폼(OCP)입니다.

Red Hat OpenShift 살펴보기
컨테이너 솔루션

컨테이너 솔루션은 보안, 오픈 소스 혁신, 신속한 배포를 통해 컨테이너화된 워크로드를 실행하고 확장합니다.

컨테이너 살펴보기
클라우드 컨설팅 서비스 

IBM Cloud 컨설팅 서비스를 통해 새로운 역량을 개발하고 비즈니스 민첩성을 향상하세요. 하이브리드 클라우드 전략 및 전문가 파트너십을 통해 솔루션을 공동으로 개발하고, 디지털 혁신을 가속화하고, 성능을 최적화하는 방법을 알아보세요.

클라우드 서비스
다음 단계 안내

완전 관리형 Red Hat OpenShift 플랫폼으로 시작하거나, IBM Cloud Kubernetes 에코시스템의 유연성을 살펴보세요. 요구 사항에 맞게 조정되는 확장 가능하고 안전한 솔루션으로 개발 및 배포 프로세스를 가속화하세요.

Red Hat OpenShift 살펴보기 Kubernetes 살펴보기