Skip to main content

2 posts tagged with "xDS"

The Envoy discovery-service APIs and control planes.

View All Tags

What Is an Envoy Control Plane? xDS Explained

· 9 min read
CloudNativeWorks Engineering
The team that builds Elchi

An Envoy control plane is a gRPC server that tells Envoy proxies what to run: which listeners to open, how to route requests, which upstream clusters exist, which endpoints are behind them and which certificates to use. Envoy fetches all of this over a family of discovery APIs called xDS and applies each update without a restart. The proxy is the data plane; the server that answers its xDS requests is the control plane.

This post explains the xDS APIs, how Aggregated Discovery Service (ADS) orders updates, the difference between state-of-the-world and incremental (delta) xDS, how ACK and NACK work, and what a snapshot cache does. At the end we show where Elchi fits and which of these choices it makes.

Running an Envoy Fleet Without Hand-Writing xDS

· 8 min read
CloudNativeWorks Engineering
The team that builds Elchi

Envoy is easy to start with and hard to operate at fleet scale. One proxy with a static YAML bootstrap is a weekend project. Twenty proxies on VMs, a few on Kubernetes, two Envoy versions in flight and a change window every week is a different job. At that point most teams reach the same conclusion: Envoy is meant to be driven by a control plane over xDS, and somebody has to own that control plane.

This post covers what that control plane has to do, why hand-written xDS breaks down, and how we approached each part in Elchi. The problems apply to any Envoy deployment, whichever control plane you end up with.