Published on

k8s gateway API

k8s ingress의 superset에 해당하는 Kubernetes Gateway API에 대해 알아본다.
ingress nginx 팀에서도 기존 프로젝트를 maintenance로 변경하고, InGate라는 새로운 프로젝트로 작업을 한다는 소식이 있다. (issue)

Motivation

Network topology 관점에서 보자면 ingress와 API Gateway 모두는 L7 load balancer에 해당한다(k8s 외부로의 단일 접점 제공, L7 기반 부하 분산). 따라서 이들 둘을 별도로 운용하는 것은 비효율적이다. (이로 인해, 일반적으로는 L4 Load balancer에 API Gateway를 붙여 사용하리라 예상한다).

Kubernetes Gateway API는 이들 문제에 대한 해결안이다.

What is k8s Gateway API?

Gateway API는 ingress API를 사실 상 대체 가능한 superset 이다.
ingress와 API Gateway 모두는 Network 관점에서 보면 L7 Load balancer에 해당하지만, API Gateway는 ingress와는 달리 L7 protocol(e.g. HTTP)에 특화된 다양한 작업을 수행 가능하다.
한마디로 말해, k8s Gateway API란 ingress + API Gateway인 셈이다.

k8s Gateway API의 resources 및 이들 간 관계

ingress와는 달리 k8s Gateway API는 GatewayHTTPRoute 라는 두 개의 resource로 나누어, Cluster와 application level 담당자를 분리 가능하도록 함과 동시에 application level 내에서도 각기 담당하는 resource를 분리 가능하도록 한다.

GatewayClass

Gateway

HTTPRoute


참고