Gateway API
Zweck
Gateway API stellt die standardisierte Veröffentlichung von Diensten innerhalb der Kubernetes-Plattform bereit.
Die API ersetzt langfristig klassische Ingress-Ressourcen und ermöglicht eine konsistente Verwaltung von HTTP-, TCP- und TLS-Verkehr.
Ziele
-
Trennung von Infrastruktur und Applikationen
-
Standardisierte Veröffentlichung von Diensten
-
Unterstützung mehrerer Protokolle
-
GitOps-freundliche Konfiguration
-
Portabilität zwischen verschiedenen Gateway-Implementierungen
Architektur
Gateway
|
+-- HTTPRoute
+-- TCPRoute
+-- TLSRoute
|
v
Anwendung
Applikationen verwalten ausschließlich ihre Routen.
Die Gateway-Infrastruktur wird zentral durch die Plattform bereitgestellt.
Implementierungen
Die Plattform verwendet unterschiedliche Gateway-Implementierungen.
| Cluster | Implementierung |
|---|---|
home-tamay-cloud |
Cilium Gateway |
test-tamay-cloud |
Envoy Gateway |
tamay-cloud |
Traefik Ingress |
Langfristig soll Envoy Gateway als einheitliche Gateway-Implementierung verwendet werden.
Ressourcen
Gateway
Ein Gateway definiert die verfügbaren Listener und dient als zentraler Einstiegspunkt.
Beispiel:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: main
spec:
gatewayClassName: envoy
HTTPRoute
HTTPRoute wird für die Veröffentlichung von Webanwendungen verwendet.
Beispiel:
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: paperless
spec:
hostnames:
- paperless.home.tamay.cloud
TCPRoute
TCPRoute ermöglicht die Weiterleitung von TCP-Verbindungen.
Typische Anwendungsfälle:
-
Datenbanken
-
Mailserver
-
Proprietäre TCP-Protokolle
DNS Integration
Gateway API arbeitet direkt mit ExternalDNS zusammen.
HTTPRoutes werden automatisch erkannt und als DNS-Einträge veröffentlicht.
Weitere Informationen:
Zertifikate
TLS-Zertifikate werden über Cert Manager bereitgestellt.
Die Referenzierung erfolgt über Gateway Listener oder die jeweiligen Routen.
Weitere Informationen: