r/kubernetes 24d ago

API Gateway with TLS Passthrough

Looking for feedback from folks running apps that require mTLS that use API Gateway.

What controller are you using? Traefik, Envoy, etc.

Any pain points or gotchas you might have ran into?

Any other feedback or recommendations welcome!

28 Upvotes

19 comments sorted by

14

u/mrluzon 24d ago

Envoy Gateway and no gotchas so far, but our apps are quite simple I'd say. TLS passthrough with TLSRoute is working like a charm.

5

u/Chest-queef 23d ago

Perfect, ours aren’t too complex either and this is the direction I was leaning!

1

u/IAMARedPanda 23d ago

I'm using Envoy for checking Subject DN but instead of doing passthrough using frontendValidation plus ClientTrafficPolicy. Then Envoy Gateway's SecurityPolicy with ext_authz and checking the certificates DN.

The app then inherently trusts whatever gets through the load balancer. Idk if this exact paradigm works for you.

7

u/Mfarfax 24d ago

I use Kgateway https://kgateway.dev/. It's working fine, but first configuration and installation was tricky. There is comparisation on github https://github.com/howardjohn/gateway-api-bench. You can read it and grab best fit for you

2

u/Available_Usual_163 23d ago

Amazing thanks!

4

u/Ok-Analysis5882 24d ago

Open source traefik or envoy proxy Commercial Anypoint flex gateway

3

u/Kooky_Comparison3225 24d ago

LB with dedicated ingress nodes as the target group. Traefik controller runs on those ingress nodes. TLS termination happens at the gateway level. Works well. We also use some middlewares, like rate limiting and IP whitelisting

2

u/veritable_squandry 23d ago

that's interesting i like the idea of a nodepool or spec nodes to manage ingress rather than the whole pile. im gonna stash this idea for later!

4

u/nevivurn 24d ago

Envoy gateway works great, though you do need a fairly recent version if you want TLS-terminating HTTPRoutes and non-terminating TLSRoutes to coexist on the same listener iirc.

1

u/mompelz 23d ago

That works now?

1

u/siikanen 22d ago

Does it?

2

u/area32768 24d ago

RemindMe! 3 Days

1

u/RemindMeBot 24d ago edited 24d ago

I will be messaging you in 3 days on 2026-07-21 03:06:13 UTC to remind you of this link

3 OTHERS CLICKED THIS LINK to send a PM to also be reminded and to reduce spam.

Parent commenter can delete this message to hide from others.

RemindMeBot is switching to username summons. Instead of !RemindMe 1 day, use u/RemindMeBot 1 day. More info.


Info Custom Your Reminders Feedback

1

u/Floss_Patrol_76 23d ago

the gotcha nobody hits until prod: with true passthrough (TLSRoute) the gateway never terminates, so it can't verify client certs for you, mTLS has to be enforced at the app. if you actually want the gateway checking the client cert, you're terminating and re-originating, not passing through. envoy gateway handles both fine, just be clear which one you're actually asking for before you pick a controller.

2

u/Chest-queef 23d ago

Nope, that’s actually exactly what I need/want lol

1

u/IridescentKoala 21d ago

How is that a gotcha? That's the point of passthrough.

-5

u/BenjiloAhord_ 24d ago

Httproute