Kubernetes Ingress 컨트롤러는 Kubernetes 환경에서 실행되는 애플리케이션으로 들어오는 트래픽을 관리하는 특수 소프트웨어 구성 요소로, 외부 사용자와 컨테이너화된 서비스 간의 다리 역할을 합니다.
현대 기업은 수십 또는 수백 개의 마이크로서비스로 구축된 분산 애플리케이션 및 워크로드에 크게 의존합니다. 적절한 트래픽 오케스트레이션이 없으면 각 서비스에 자체 퍼블릭 엔드포인트가 있어야 하는데, 이로 인해 심각한 관리 및 보안 문제가 발생할 수 있습니다.
예를 들어, 의료 플랫폼에는 환자 포털, 의료진 대시보드, 청구 시스템 및 규정 준수 보고를 위한 별도의 액세스 포인트가 필요할 수 있는데, 이러한 접근 방식은 비용이 많이 들고 운영이 복잡해집니다.
Kubernetes Ingress 컨트롤러는 애플리케이션 진입점에서 로드 밸런서 및 지능형 트래픽 라우터 역할을 하여 이 문제를 해결합니다. 외부 사용자가 내부 서비스에 액세스할 수 있는 중앙 집중식 트래픽 경로를 설정합니다.
Kubernetes 에코시스템은 GitHub와 같은 플랫폼에서 사용할 수 있는 오픈 소스 도구(예: NGINX, Traefik)와 조직의 특정 요구 사항을 충족하도록 설계된 독점 솔루션을 비롯한 다양한 Ingress 컨트롤러를 제공합니다.
업계 뉴스레터
Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.
구독한 뉴스레터는 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
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 리소스의 변경 사항을 추적하고 라우팅 테이블을 자동으로 업데이트하여 새로운 애플리케이션 배포 또는 구성 업데이트를 반영합니다.
Ingress 컨트롤러의 작동 방식을 이해하려면 외부 트래픽을 Kubernetes 클러스터 내 서비스로 보내는 라우팅 규칙을 정의하는 API 리소스(또는 Ingress 오브젝트)인 Kubernetes Ingress를 이해하는 것이 중요합니다.
Kubernetes Ingress는 들어오는 네트워크 트래픽이 클라우드 네이티브 컨테이너화된 애플리케이션 환경으로 이동하는 것을 가리키는 일반적인 용어인 인그레스와는 다릅니다. Kubernetes에서 Ingress는 특히 들어오는 트래픽이 다른 서비스로 라우팅되는 방법을 관리하는 규칙 및 구성 집합을 나타냅니다. 반면, 넓은 의미의 인그레스는 시스템으로 유입되는 트래픽을 의미하고, 이그레스는 시스템에서 유출되는 트래픽을 의미합니다.
Kubernetes의 인그레스 및 이그레스에 대해 자세히 알아보세요.
Kubernetes Ingress는 Kubernetes 클러스터 내 서비스에 대한 외부 액세스를 관리하기 위한 선언적 접근 방식을 제공합니다. 개별 서비스(예: NodePort, LoadBalancer 서비스)를 인터넷에 직접 노출하는 대신 Ingress는 여러 기준에 따라 요청을 지능적으로 라우팅하는 제어된 액세스 계층을 생성합니다. 이 기능을 사용하면 일반적으로 Kubernetes 클러스터 내에서 ClusterIP를 사용하여 노출되는 서비스에 대한 외부 트래픽을 효율적으로 관리할 수 있습니다.
Kubernetes Ingress는 두 가지 상호 보완적인 구성 요소를 통해 작동합니다.
Ingress 컨트롤러는 구성 규칙을 읽고 적용하는 소프트웨어 구성 요소로, 고급 트래픽 기능을 갖춘 리버스 프록시 역할을 합니다.
TCP, UDP 및 HTTP/HTTPS 경로와 같은 기존 4계층 로드 밸런서는 IP 주소 및 포트만을 기반으로 트래픽을 분산합니다. 반면 Kubernetes 수신 컨트롤러는 (애플리케이션 계층) 7계층에서 작동하므로 보다 정교한 라우팅이 가능합니다.
Kubernetes Ingress API 및 HTTPRoute와 같은 기능을 활용하여 Ingress 컨트롤러는 다음과 같은 자세한 HTTP 관련 속성을 기반으로 라우팅 결정을 내립니다.
이러한 결정은 라우팅 정책 및 기타 요구 사항을 지시하는 구성 규칙을 기반으로 합니다. Ingress 컨트롤러는 이러한 구성의 변경 사항을 지속적으로 모니터링하여 수동 개입 없이 라우팅 동작을 자동으로 업데이트하고 원활한 트래픽 분산 및 보안 관리를 보장합니다.
Kubernetes 클러스터는 여러 개의 Ingress 컨트롤러를 동시에 실행하여 각각 다른 트래픽 유형 또는 애플리케이션을 처리할 수 있습니다. 각 컨트롤러는 이벤트 중심 방식으로 작동하여 사양, 주석 및 메타데이터를 읽고 실행 가능한 라우팅 명령으로 변환하여 Ingress 리소스의 변경에 대응합니다.
Kubernetes Ingress 컨트롤러는 들어오는 요청을 검사하고 호스트 이름, DNS 이름과 같은 사전 정의된 규칙에 따라 라우팅 결정을 내립니다. 또한 HTTP 및 HTTPS 트래픽을 처리하고, SSL 종료를 수행하고, 여러 서비스 인스턴스에서 지능적인 로드 밸런싱 결정을 내립니다.
Kubernetes Ingress 컨트롤러는 네임스페이스 전반에 걸친 Ingress 리소스 변경 사항을 감지하기 위해 Kubernetes API를 지속적으로 모니터링합니다. 이러한 변경 사항이 kubectl, CI/CD 파이프라인 또는 기타 도구(예: Helm, Terraform)를 통해 적용되더라도, 컨트롤러는 수동 개입이나 서비스 재시작 없이 라우팅 규칙을 자동으로 업데이트합니다.
대부분의 Kubernetes Ingress 컨트롤러에 내장된 로드 밸런싱 기능은 수신 요청을 동일한 서비스의 여러 인스턴스에 분산하여 최적의 성능을 보장하고 단일 인스턴스에 과부하가 걸리는 것을 방지합니다.
최신 Kubernetes 수신 컨트롤러에는 TLS 종료, 자동 인증서 프로비저닝, 갱신 및 보안 통신 적용과 같은 정교한 SSL/TLS 관리 능력이 포함되어 있습니다.
고급 Kubernetes Ingress 컨트롤러는 백엔드 서비스의 상태를 지속적으로 모니터링하고 장애가 발생한 인스턴스로부터 트래픽을 자동으로 라우팅하여 고가용성과 향상된 사용자 경험을 보장합니다.
대규모 조직은 Ingress 컨트롤러를 사용하여 통합 액세스 포인트 뒤에 수백 개의 내부 애플리케이션을 통합합니다. 이 접근 방식은 중앙 집중식 정책 시행을 통해 보안을 강화하는 동시에 인프라 비용을 절감합니다. 글로벌 제조 회사는 단일 Ingress 컨트롤러 배포를 통해 여러 지역 ERP 시스템, 공급망 애플리케이션 및 고객 포털로 요청을 라우팅할 수 있습니다.
개발 팀은 Ingress 컨트롤러를 사용하여 새로운 기능을 테스트하기 위한 별도의 환경을 만듭니다. 팀은 새로운 테스트 환경을 자동으로 설정하고 개발 중인 기능에 따라 각 환경에 적합한 트래픽을 전달할 수 있습니다.
기업은 Ingress 컨트롤러를 사용하여 파트너 및 공급 업체와 내부 API를 안전하게 공유할 수 있습니다. 각 조직마다 서로 다른 액세스 권한과 사용 제한을 설정할 수 있으며, 별도의 인프라 구축 없이 단일 시스템을 통해 모두 관리할 수 있습니다.
다국적 조직은 글로벌 트래픽 관리 전략의 일환으로 Ingress 컨트롤러를 구현하여 일관된 보안 및 모니터링 정책을 유지하면서 사용자를 지리적으로 최적화된 데이터 센터로 라우팅합니다.
규제 대상 산업에서는 Ingress 컨트롤러를 사용하여 필수 로깅, 액세스 제어(페이지 생성 시 추가) 및 데이터 거버넌스 정책을 구현합니다. 모든 외부 액세스는 Ingress 계층을 통해 중앙에서 모니터링하고 감사할 수 있습니다.
올바른 Kubernetes Ingress 컨트롤러를 선택하는 것은 조직의 요구 사항, 기존 인프라, 팀 역량에 따라 달라집니다. 각 구현은 특정 사용 사례에 대한 고유한 이점을 제공합니다.
Red Hat OpenShift on IBM Cloud는 완전 관리형 OpenShift 컨테이너 플랫폼(OCP)입니다.
컨테이너 솔루션은 보안, 오픈 소스 혁신, 신속한 배포를 통해 컨테이너화된 워크로드를 실행하고 확장합니다.
IBM Cloud 컨설팅 서비스를 통해 새로운 역량을 개발하고 비즈니스 민첩성을 향상하세요. 하이브리드 클라우드 전략 및 전문가 파트너십을 통해 솔루션을 공동으로 개발하고, 디지털 혁신을 가속화하고, 성능을 최적화하는 방법을 알아보세요.