Skip to content

One picture of the data plane: listeners accept connections, filter chains process them, routes pick clusters, clusters hold endpoints.

Every request through Arion crosses the same four resources — listener, filter chain, route, cluster — and knowing which is which tells you where to configure anything.

Figure 1. The request path left to right; configuration arrives from below, from a file or an xDS control plane.

A listener binds an address and port and accepts connections. For each connection it selects one filter chain by the chain's match criteria (destination port, SNI, source addresses). The chain's network filters run in order; for HTTP the last one is the HTTP connection manager, which runs a second list of HTTP filters ending in the router. The router matches the request against the route table — virtual hosts by domain, then routes by path and headers — and the winning route names a cluster, which load-balances the request across its endpoints.

The resources mean the same thing however they arrive: written in an envoy_bootstrap section of Arion's config file, or streamed from a control plane over xDS.

Key terms

TermMeaning
ListenerA bound address:port that accepts connections and owns filter chains. See listeners.
Filter chainAn ordered list of network filters, selected per connection by its match. See the filter chain.
Network filterAn L4 stage — tcp_proxy, or the HTTP connection manager.
HTTP filterAn L7 stage inside the HTTP connection manager; the last one is always the router.
RouteA match (domain, path, headers) plus an action, usually "send to this cluster". See routing.
ClusterA named group of endpoints with a load-balancing policy. See upstreams.
EndpointOne upstream address:port inside a cluster.
xDSEnvoy's discovery protocol, delivering all of the above from a control plane. See xDS control planes.

Next

Start typing to search the site.

↑ ↓ to move Enter to open Esc to close