Saying Goodbye to Ingress: Embracing the Future of Kubernetes Traffic Management with Gateway API and Cilium

Introduction

  • k8s에서 dynamic세계에서는 ingress traffice 효율적이고 안전하게 관리하는 것이 항상 중요한 과제`
  • 그러나 k8s클러스터 내부에서 트래픽 라우팅을 처리하는 방식을 혁신적으로 변화시키는 솔루션이 등장
  • Gateway API는 역할 기반 접그제어, 이동성 및 확장성 등 운영자에게 많은 이점을 제공

목표

Gateway API 혁신적인 기능을 살펴보고 이것이 왜 k8s 트래픽을 효율적으로 관리하는지 살펴보자

Gateway API란

  • SIG-Network 커뮤니트에서 관리하는 오픈소스 프로젝트
  • k8s에서 서비스 네트워킹을 모델링하는 리소스의 집합
  • 이러한 리소스는 Gateway Clasee, Gateway, HTTP Route, TCP Route, Service 등이 있으며, k8s서비스 네트워킹을 표현력 있고 확장가능하며 role중심적인 인터페이스를 통해 발전시키는 것을 목표 (많은 벤더들이 구현 및 광범위한 산업 지원)

  • Ingres API의 후속적으로 고안되었으며, 일반적으로 사용되는 프로토콜(HTTP,TLS,UDP,TCP)에대해 명시적인 지원 함께 TLS에대한 통합 지원 가능
  • k8s API를 통해 네트워크 Gateway의 숨여주기를 관리 가능

gateway

Realizing Efficiency: Gateway API as the Long-Term Solution:

  • 사용자들이 직면하고 있는 문제 도구 분산 : 복잡한 마이크로서비스 아키텍처 배포할때 운영자는 일반적으로 CNI, Network Policy 엔진, built-in observability with Hubble (관찰가능성 및 암호화를 위한 서비스 Mesh, ingress 또는 Gateway API컨트롤러등을 배포)
  • 이는 업그레이드 및 관리에 운영적인 약점

  • Cilium은 사용자가 클라우드 네이티브 네트워킹 및 보안 도구의 수를 통합할 수 있도록 도와줌
  • 왜냐면 Gateway API뿐만 아니라 sidecar-less 서비스 Mesh, Transparent Encryption, Network Policy, Hubble을 통한 내장된 관찰 가능성등을 native하게 지원

Introduction Cilium

  • k8s에서 사용할 수 있는 다양한 container network interface(CNI)중에서는 눈의띄는 제품
  • eBDP(확장된 Berkely Packet Filter)를 기반으로 구축되어 k8s네트워킹내에서 네트워크, 관찰 가능성 및 보안에 초점
  • Pods에 CIDR를 할당하고 Pods간 통신을 가능하게 하는 등의 표준 네트워크기능을 제공하지만, 핵심적인 차이점은 eBPF Backend에 있음
  • eBPF의 해시 테이블과 같은 기능을 활용하여 kube-proxy 및 IP Table가 필요하지 않으며, k8s클러스터 내에서의 네트워크 운영 관리에대한 향상된 효율성과 성능을 제공

Cilium Gateway API

  • Cilium은 Gateway API를 지원하며 중요한 milestone을 마크함
  • k8s ingress의 미래 대체품으로, 운영자가 역할 기반의 portable하고 확장 간으한 방식으로 클러스터 내에서 트래픽을 효율적으로 라우팅하도록 제공
  • 완전한 Gateway API를 구현을 제공, 사용자가 트래픽 라우팅에 대해 유연하고 강력한 접근방식을 사용 할 수 있도록 함
  • 또한 L7 LB를 구성하기 위한 새로운 annotation이 제공. 여기에는 요청별 gRPC 밸런싱 포함
  • 또한 mTLS 데이터패스가 병합되어 미래의 프록시 그리고 mTLS구현을 위한 기반을 마련 다양한 identity 관리공급자와 통합
  • 네트워크 측면에서 BIG TCP, LB k8s서비스에대한 IPAM, SCTP, NAT46/64 개선이 구현
  • 보안측면에서는 이미지 서명과 Software Bill of Materials(SBOMs)생성을 통해 강화
  • NetworkPolicy는 이제 TLS SNI서버 이름 매칭을 지원.
  • Gateway API는 K8S Ingress의 장기적인 대체품으로 중요성 강조
    • 역할 기반의 접근 제어
    • portable 및 확장성을 제공
    • 운영자가 k8s클러스터내에서 트래픽 라우팅을 재정의하고, 배포의 잠재력을 최대한 발휘 할 수 있도록 지원

cilium

참고