Plusieurs écouteurs au sein d'une passerelle
Le NetScaler® Kubernetes Gateway Controller prend en charge plusieurs écouteurs au sein d'une seule ressource Gateway, tel que défini par l'API Kubernetes Gateway. Cette fonctionnalité offre une plus grande flexibilité et un meilleur contrôle sur la manière dont le trafic externe est géré et acheminé vers les services au sein de votre cluster Kubernetes.
Avec la prise en charge de plusieurs écouteurs, vous pouvez :
-
Exposer plusieurs ports sur le même ensemble d'adresses IP de passerelle, afin que différentes applications ou services puissent être accédés via des ports distincts.
-
Prendre en charge différents protocoles, tels que HTTP et HTTPS, sur des ports distincts tout en utilisant la même adresse IP de passerelle.
-
Appliquer des configurations TLS uniques pour chaque écouteur, permettant une communication sécurisée adaptée à des exigences spécifiques.
-
Définir des règles de routage distinctes pour chaque écouteur, vous permettant de gérer et de diriger différents flux de trafic entrant.
Cette fonctionnalité d'écouteur améliorée permet des scénarios de gestion de trafic avancés, tels que l'hébergement de plusieurs applications sécurisées et non sécurisées derrière une seule passerelle, ou la segmentation du trafic à des fins de conformité et de sécurité. En utilisant plusieurs écouteurs, vous pouvez optimiser la livraison de vos applications et améliorer l'évolutivité et la sécurité de votre environnement Kubernetes.
Exemple de configuration
La configuration d'exemple suivante dans Kubernetes entraîne la création de trois serveurs virtuels de commutation de contenu et d'un ipset pour chaque serveur virtuel de commutation de contenu.
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: my-gateway-http
namespace: default
spec:
gatewayClassName: my-gateway-class
addresses:
- type: IPAddress
value: <ip1>
- type: IPAddress
value: <ip2>
- type: IPAddress
value: <ip3>
listeners:
- name: http-listener
protocol: HTTP
port: 80
allowedRoutes:
namespaces:
from: All
- name: http-listener1
protocol: HTTP
port: 81
allowedRoutes:
namespaces:
from: All
- name: https
protocol: HTTPS
port: 443
tls:
mode: Terminate
certificateRefs:
- kind: Secret
name: my-secret
group: ""
allowedRoutes:
namespaces:
from: All
Filtres d'espaces de noms
Par défaut, les passerelles appliquent une isolation stricte des espaces de noms. Cela signifie que seules les routes telles que
HTTPRoute qui existent dans le même espace de noms que la ressource Gateway peuvent se lier à cette passerelle. Ce comportement par défaut fournit un environnement de routage sécurisé et isolé, garantissant que seules les routes fiables au sein du même espace de noms peuvent influencer la gestion du trafic de la passerelle.
Pour prendre en charge des scénarios de routage plus avancés, vous pouvez activer le routage inter-espaces de noms en configurant le champ
allowedRoutes dans chaque définition d'écouteur de votre ressource Gateway. Le champ allowedRoutes offre un contrôle granulaire sur les espaces de noms autorisés à attacher des routes à un écouteur spécifique, permettant des déploiements multi-locataires ou multi-équipes flexibles et sécurisés.
Le champ
allowedRoutes.namespaces.from prend en charge trois modes distincts pour la sélection d'espaces de noms :
-
Identique (par défaut) : - Seules les routes du même espace de noms que la passerelle sont autorisées à se lier. Ce mode est l'option la plus restrictive et la plus sécurisée, adaptée aux environnements où une isolation stricte est requise.
-
Tous : - Les routes de n'importe quel espace de noms du cluster Kubernetes peuvent se connecter à l'écouteur de la passerelle. Ce mode offre une flexibilité maximale, permettant aux ressources de passerelle centralisées de servir des routes provenant de plusieurs espaces de noms. Cependant, il est important de prendre en compte les implications en matière de sécurité et de mettre en œuvre des contrôles RBAC appropriés lors de l'utilisation de ce mode.
-
Sélecteur : - Les routes sont autorisées à se connecter en fonction de critères de correspondance d'étiquettes d'espace de noms. Ce mode utilise les sélecteurs d'étiquettes Kubernetes pour activer des politiques de routage sophistiquées basées sur l'espace de noms. Par exemple, vous pouvez autoriser uniquement les espaces de noms avec une étiquette spécifique (telle que
team=frontend) à connecter des routes à un écouteur, offrant un contrôle multilocataire précis.Remarque :Si l'étiquette de l'espace de noms est modifiée après l'application deHTTPRoute, les modifications ne sont pas répercutées dans le contrôleur de passerelle.