Ambassador is an open source Kubernetes-native API Gateway built on the Envoy proxy. We talked about why and how we built Ambassador during the Envoy salon at KubeCon.
8. 8
How?
Configuration engine
Read K8s annotations and secrets, create
Envoy config
Update config as annotations change
Diagnostic service
Show user what we read, and the resulting
Envoy config
10. 10
How?
External Auth service
Ask an external service whether it’s OK for a
request to proceed
Envoy filter, so custom Envoy build for now
11. 11
How?
Kubernetes synchronization using hot restart
Less cool than xDS…
…but simpler to deploy and operate
Avoids instability due toV1 xDS polling latency
(keeping a careful eye onV2 though!)
14. 14
Challenges
Layers upon layers in debugging
You just got a 404 — quick, where do you
look?What caused it? How do you fix it
Might be Ambassador, Envoy, Kubernetes,
maybe Istio
Diagnostic service is a huge help here, but
we need more focus and visibility
15. 15
Challenges
Kubernetes development process
Reaching into the cluster to iterate and
debug adds a lot of complexity
In general, hunt for any tricks you can find to
streamline the dev cycle
Shameless plug: Datawire has tools to help
here