NGINX Kubernetes Gateway에 대해 꼭 알아야 할 5가지 사항

Kubernetes 여정에서 성공할 수 있도록 지난 몇 년 동안 노력한 NGINX는 또 다른 이정표에 도달했습니다. NGINX 제품군에 새로 추가된 NGINX Kubernetes Gateway 의 알파 버전을 출시했습니다!

NGINX Kubernetes Gateway는 Kubernetes Ingress API 사양(specification)에서 발전된 Kubernetes Gateway API 사양(specification)을 구현하는 컨트롤러입니다. Gateway API는 Kubernetes의 서비스 네트워킹을 개선하고 표준화하기 위해 Kubernetes Network Special Interest Group(SIG‑NETWORK) 커뮤니티에서 관리하는 오픈소스 프로젝트입니다. NGINX는 이 프로젝트에 적극적으로 기여하고 있습니다.

Kubernetes를 적극적으로 사용하고 있다면 이미 Ingress API 객체와 사용 가능한 많은 Ingress 구현에 익숙할 것입니다. Gateway API는 Kubernetes 앱 및 API를 노출하는 최신 방법입니다. 현재 사용 가능한 다른 옵션에 대해 자세히 알아보려면 Kubernetes 네트워킹 101을 참조하세요.

조직이 지난 몇 년 동안 다양한 하이브리드, 다중 클라우드 환경의 프로덕션 등급 Kubernetes 클러스터에 Ingress Controller를 배포하면서 다양한 문제를 해결하는 데 도움이 되는 Gateway API의 필요성을 인식하게 되었습니다.

  • 한 가지 문제는 원래 Ingress 리소스가 전체 구성을 감독하는 Kubernetes 운영자 또는 관리자라는 하나의 사용자 역할만 염두에 두고 설계되었다는 것입니다. 이 모델은 애플리케이션 개발자, 플랫폼 운영자, 보안 관리자 등 여러 팀이 앱 개발 및 제공에 대해 협업할 때 Ingress 구성의 다양한 측면을 제어해야 하는 많은 조직에 적합하지 않습니다. Gateway API는 새 모델을 인식하고 여러 역할에 걸쳐 네트워킹 구성에 대한 제어를 쉽게 위임할 수 있습니다.
  • 또 다른 문제는 여러 Ingress 구현에서 주석 및 사용자 지정 리소스 정의(CRD)가 확산되고 있다는 점입니다. 여기에서 다양한 데이터 평면의 기능을 잠금 해제하고 헤더 기반 일치, 트래픽 가중치, 및 다중 프로토콜 지원. Gateway API는 핵심 API 표준의 일부로 이러한 기능을 제공합니다.

목차

1. NGINX Kubernetes Gateway란 무엇입니까?
2. NGINX Kubernetes Gateway는 NGINX Ingress Controller와 어떻게 다릅니까?
3. NGINX Kubernetes Gateway가 NGINX Ingress Controller를 대체할 예정입니까?
4. NGINX Kubernetes Gateway는 API Gateway입니까?
5. 어떻게 시작합니까?

1. NGINX Kubernetes Gateway란 무엇입니까?

Ingress Controller의 발전으로 NGINX Kubernetes Gateway는 여러 팀이 최신 고객 환경에서 Kubernetes 인프라를 관리할 수 있도록 하는 문제를 해결합니다. 또한 CRD를 구현할 필요 없이 많은 기능을 제공하여 배포 및 관리를 단순화하는 데 도움이 됩니다. NGINX Kubernetes Gateway는 검증된 NGINX 기술을 데이터 플레인으로 활용하여 동급 최고의 성능, 가시성 및 보안을 제공합니다.

NGINX Kubernetes Gateway는 연결된 역할(인프라 제공자, 클러스터 운영자 및 애플리케이션 개발자)에 대한 RBAC(역할 기반 액세스 제어) 매핑을 통해 세 가지 기본 Gateway API 리소스(GatewayClass, Gateway 및 Routes)를 표준화합니다.

다양한 역할에 대한 책임 범위와 분리를 명확하게 정의하면 관리가 간소화되고 간소화됩니다. 특히 인프라 제공자는 Kubernetes 클러스터에 대한 GatewayClass를 정의하는 반면 클러스터 운영자는 정책을 포함하여 클러스터 내에서 Gateway를 배포 및 구성합니다. 그러면 애플리케이션 개발자는 자신의 애플리케이션을 외부에 노출하기 위해 Gateway에 경로를 자유롭게 연결할 수 있습니다.

또한 NGINX Kubernetes Gateway는 대부분의 사용 사례에 대해 내장된 핵심 기능을 표준화하여 CRD의 필요성을 줄여 Kubernetes 환경에서 서비스 네트워킹의 배포 및 관리를 단순화합니다. NGINX Kubernetes Gateway의 알파 구현은 Layer 7(HTTP 및 HTTPS) 라우팅을 통해 Ingress Controller 기능을 제공하는 데 중점을 둡니다. 향후 기능은 Layer 4 라우팅 기능을 포함한 커뮤니티 피드백 및 사용 사례에 의해 주도될 것입니다. Gateway API 및 NGINX Kubernetes Gateway에 대한 장기 로드맵은 결국 Ingress Controller에서 제공하는 상위 기능 집합을 제공하는 것입니다.

2. NGINX Kubernetes Gateway는 NGINX Ingress Controller와 어떻게 다릅니까?

NGINX Ingress Controller는 Ingress API 사양을 구현하여 확장된 기능을 위한 맞춤형 주석, CRD 및 NGINX Ingress 리소스를 사용하여 핵심 기능을 제공합니다. NGINX Kubernetes Gateway는 Gateway API 사양을 준수하고 구현을 단순화하며 서비스 네트워킹 구성을 처리하는 조직 역할에 더 잘 맞습니다.

다음 표에서는 표준 Ingress API, CRD가 있는 NGINX Ingress Controller 및 Gateway API의 주요 고급 기능을 비교하여 해당 기능을 보여줍니다.

특징표준 Ingress APICRD가 있는
NGINX Ingress Controller
Gateway API
API specificationIngress APIIngress API + CRDsGateway API
다중 사용자 관리
L7 프로토콜
(HTTP/HTTPS, gRPC)
L7 로드 밸런싱Custom policy
Request 라우팅
Request manipulationLimited
Response manipulationLimited
L4 프로토콜
(TLS, TCP, UDP)
L4 로드 밸런싱Custom policy
Allow/deny 리스트Custom policy
인증서 유효성 검사Custom policy
Authentication (OIDC)Custom policy
Rate limiting (속도 제한)Custom policy

3. NGINX Kubernetes Gateway가 NGINX Ingress Controller를 대체할 예정입니까?

NGINX Kubernetes Gateway는 NGINX Ingress Controller를 대체하지 않습니다. 오히려 이는 Gateway API 사양의 알파 릴리스를 기반으로 하는 새로운 기술이며 평가 목적으로만 사용되며 프로덕션에서는 사용하지 않습니다. NGINX Ingress Controller는 많은 고객이 생산에 사용하는 성숙하고 안정적인 기술입니다. 사용자 지정 주석 및 CRD를 통해 특정 사용 사례에 맞게 조정할 수 있습니다. 예를 들어 역할 기반 접근 방식을 구현하기 위해 NGINX Ingress Controller는 VirtualServer, VirtualServerRoute, TransportServer 및 Policy를 포함한 NGINX Ingress 리소스를 사용합니다.

우리는 NGINX Kubernetes Gateway가 NGINX Ingress Controller를 조만간 대체할 것으로 기대하지 않습니다. 이러한 전환이 일어난다면 몇 년 후에 가능할 것입니다. NGINX Ingress Controller는 로드 밸런싱, 트래픽 제한, 트래픽 분할 및 보안을 포함하여 다양한 환경 및 사용 사례에 대한 north-south 네트워크 트래픽을 관리하는 데 계속 중요한 역할을 할 것입니다.

4. NGINX Kubernetes Gateway는 API Gateway입니까?

“Gateway API”라는 이름이 “API Gateway”라고 생각하는 것이 합리적이지만 그렇지 않습니다. 어떻게 선택합니까? API Gateway vs Ingress Controller vs Service Mesh, “API Gateway”는 다양한 유형의 프록시(가장 일반적으로 ADC 또는 로드 밸런서 및 리버스 프록시)를 통해 구현될 수 있는 일련의 사용 사례를 설명하며 점점 더 Ingress Controller 또는 Service Mesh. 즉, NGINX Ingress Controller와 마찬가지로 NGINX Kubernetes Gateway는 특정 마이크로서비스에 대한 요청 라우팅, 트래픽 정책 구현, 카나리 및 blue-green 배포 활성화를 비롯한 API Gateway 사용 사례에 사용할 수 있습니다. 알파 릴리스는 HTTP/HTTPS 트래픽 처리에 중점을 둡니다. 향후 릴리스에는 더 많은 프로토콜과 사용 사례가 계획되어 있습니다.

5. 어떻게 시작합니까?

이 흥미로운 신기술을 평가할 준비가 되셨습니까? NGINX Kubernetes Gateway의 알파 릴리스를 받으세요.

배포 지침은 README를 참조하십시오.

Gateway API 사양에 대한 자세한 내용은 Kubernetes Gateway API 문서를 참조하십시오.

문제를 해결하고 성공할 수 있도록 피드백, 기능 요청, 사용 사례 및 기타 제안 사항을 제출하는 것이 좋습니다. GitHub repo에서 피드백을 공유하세요.