Gestion réseau sur Kubernetes : l’API Gateway stabilisée

Kubernetes Gateway API

Alternative plus « flexible » aux contrôleurs Ingress, l’API Gateway du projet Kubernetes est désormais stable.

Plus de flexibilité et d’extensibilité que les contrôleurs Ingress ? Ce sont, dans les grandes lignes, les promesses de l’API Gateway.

Développée directement dans le cadre du projet Kubernetes, elle vient de passer en v1. Et pour cause : ses principales composantes sont désormais stables. En l’occurrence, les objets Gateway (points d’accès), GatewayClass (contrôleurs) et HTTPRoute (règles de routage).

logo Gateway API

Par opposition aux annotations et aux ConfigMaps généralement impliqués dans le déploiement des contrôleurs Ingress, l’API utilise des CRD pour définir les ressources. C’est l’un de ses arguments de flexibilité, aux côtés des ressources Route (stable pour HTTP ; expérimental pour TLS, TCP, UDP et gRPC), de la capacité à répartir/mettre en miroir le trafic.

L’API Gateway suit une approche fondée sur les rôles (infra, ops, dev). Elle ne remplace pas l’API Ingress, stable depuis Kubernetes 1.19. Celle-ci reste disponible, en particulier pour les usages ne ciblant que les applications HTTP.

Kubernetes API Gateway

Les maillages de services Kubernetes dans le viseur

Les produits suivants disposent d’une implémentation :

– Alpha : Amazon EKS, HAProxy, Traefik
– Bêta : Cilium, Contour, Envoy, Istio, Kong
– Preview : Azure (Application Gateway for Containers)
– GA : GKE (Google Kubernetes Engine)

La prise en charge des maillages de services en reste au stade expérimental. Le chantier a démarré en 2022, sous la bannière GAMMA (Gateway API for Mesh Management and Administration). Istio, Kuma et Linkerd ont commencé à l’implémenter.

Parmi les autres fonctionnalités expérimentales de l’API Gateway :

– BackendTLSPolicy, pour configurer la validation des certificats back-end
– 
Champ Timeout dans les règles de routage HTTP
– Champ Infrastructure pour spécifier des étiquettes/anotations à propager aux ressources
–  Prise en charge de WebSocket en clair et sur TLS pour la connexion aux services Kubernetes
– CLI (et plug-in kubectl) ; qui, pour commencer, fournira des informations sur les stratégies disponibles au sein des clusters

À consulter en complément :

Kubernetes, mais en plus simple ? Microsoft dégaine une surcouche
Le « portefeuille multicloud » de VMware rejoint la marketplace Oracle
FinOps sur Kubernetes : un modèle QoS à maîtriser

Illustration principale © Sergey Novikov – Adobe Stock