Twee componenten delen het werk van een sidecar
Een policy die er in de review onschuldig uitzag, kapt in Ambient verbindingen die ze had moeten toestaan. De reden zit een laag dieper.
- Datum
- Onderwerp
- Ambient
- Bronnen
- 4
- Leestijd
- 2 min
- Versie
- Vertaling
Een sidecar regelt alles in één container: mTLS, routing, policies, telemetrie. Ambient splitst dit pakket in twee delen, op twee plekken.
Afbeelding als tekst
Datapad in Ambient over twee nodes: pods bevatten alleen de app, geen proxy in de pod; op elke node draait ztunnel (eigen Rust-proxy, geen Envoy) voor L4, dus mTLS, identiteit en TCP-forwarding, altijd. Daarnaast de waypoint, een Envoy die alleen in het pad komt waar L7 nodig is: HTTP-routing, L7-policy, L7-telemetrie. Onderaan twee vakken: de denkgrens loopt tussen L4 en L7, de pod-grens is in Ambient het verkeerde kompas; in de waypoint gelden de vier vragen uit report #12 (listener, route, cluster, endpoint). Pointe: Een L7-policy zonder waypoint blokkeert bij twijfel ook wie ze had moeten doorlaten.
Deel één heet ztunnel en draait eenmaal per node. Hij neemt de L4-laag over: mTLS tussen workloads, de identiteit, de TCP-forwarding. En hij is geen Envoy. ztunnel is een eigen, in Rust geschreven proxy, bewust slank gehouden, omdat hij op elke node voor alle pods meedraait. In de matrix uit report #11 stond hij al als eigen engine.
Deel twee is de waypoint. Die is wel een Envoy, en hij komt alleen in het pad waar een workload echt L7 nodig heeft: HTTP-routing, AuthorizationPolicies op methodes en paden, L7-telemetrie. Geen L7-behoefte, geen waypoint, geen Envoy in het pad.
En hier zit de valkuil uit de eerste alinea. Een AuthorizationPolicy met L7-regels, dus methodes of paden, belandt zonder waypoint bij de ztunnel, en die kan L7 niet evalueren. Istio maakt er een DENY-policy van: de verbinding wordt verbroken, ook voor clients met de juiste identiteit. In de review zag de regel er onschuldig uit, omdat de reviewer in pod-grenzen dacht. De denkgrens loopt in Ambient tussen L4 en L7. De pod-grens, waarlangs sidecar-teams jarenlang hebben gedacht, is daarvoor het verkeerde kompas.
Wie report #12 heeft gelezen, kent de waypoint al: listener, route, cluster, endpoint, dezelfde motor, hetzelfde debuggen. Envoy-kennis verhuist ook hierheen gewoon mee.
Voor de rekensom betekent dat: jullie betalen L7 alleen nog waar jullie L7 nodig hebben. Daarvoor moet iemand precies kunnen beantwoorden welke workloads dat zijn en welke policies L7-regels bevatten. Deze inventarisatie is het eigenlijke Ambient-huiswerk, architectuurwerk in plaats van labels omhangen.
Een L7-policy zonder waypoint blokkeert bij twijfel ook wie ze had moeten doorlaten.
Volgende week komt de inschatting waar deze verhaallijn op uitloopt: waarom ik voor harde enterprise-eisen toch nog bij sidecars blijf.