Envoy
Ein Hochleistungs-Proxy für Cloud-native Anwendungen
Envoy ist ein leistungsstarker, erweiterbarer Proxy für Cloud-native Anwendungen. Er arbeitet auf Layer 3/4 und Layer 7 und übernimmt Load Balancing, Service Discovery, Retries, Circuit Breaking und Observability für den durchlaufenden Traffic – und er ist der Datenebenen-Proxy unter den meisten modernen Service Meshes und API-Gateways.
So funktioniert es
Envoy wird typischerweise als Sidecar neben jeder Anwendungsinstanz oder als eigenständiger Edge-Proxy betrieben. Er wird dynamisch über eine Reihe von Discovery-APIs (gemeinsam „xDS“) konfiguriert – eine Control Plane schiebt die Konfiguration für Listener, Routen, Cluster und Endpunkte, und Envoy wendet sie ohne Neustart an. Diese Trennung einer schnellen, universellen Datenebene von einer austauschbaren Control Plane ermöglicht es Werkzeugen wie Istio, auf Envoy ein vollständiges Service Mesh aufzubauen.
Kernkonzepte
- Listener — ein benannter Netzwerkort (eine IP und ein Port), an dem Envoy Verbindungen annimmt.
- Route — Konfiguration, die eingehende Anfragen abgleicht und entscheidet, welcher Upstream-Cluster sie bearbeitet.
- Cluster — eine Gruppe von Upstream-Endpunkten, auf die Envoy Traffic verteilen kann, samt Health Checking und Connection-Pool-Einstellungen.
- xDS-APIs — die Familie von Discovery-Protokollen (LDS, RDS, CDS, EDS und weitere), mit denen eine Control Plane Konfiguration dynamisch an Envoy schiebt.
Warum Teams Envoy einsetzen
- Umfangreiche Layer-7-Funktionen. Native Unterstützung für HTTP/2, gRPC, Retries, Timeouts, Circuit Breaking und feingranulares Traffic Splitting.
- Tiefe Observability. Detaillierte Metriken, Logging und verteiltes Tracing sind eingebaut, nicht nachgerüstet.
- Dynamische Konfiguration. Änderungen an Routing und Endpunkten werden angewendet, ohne Verbindungen neu zu starten oder zu kappen.
- Das gemeinsame Fundament. Er liegt Istio, mehreren API-Gateways und vielen verwalteten Ingress-Controllern zugrunde, sodass Wissen werkzeugübergreifend übertragbar ist.
Erste Schritte
Envoy wird im Kubernetes-Kontext selten eigenständig betrieben – die meisten Teams begegnen ihm als Sidecar-Proxy in einem Service Mesh wie Istio oder als Motor hinter einem Ingress-Controller oder API-Gateway. Die folgenden Anleitungen behandeln die Konfiguration von Envoy in diesen gängigen Kontexten.