#Envoy Proxy

High-performance L7 proxy and communication bus.


#Overview

Envoy is the data plane for most service meshes.

FeatureDescription
L7 routingHTTP/gRPC routing
Load balancingMultiple algorithms
ObservabilityBuilt-in metrics
Dynamic configxDS API

#Configuration

yaml
1# envoy.yaml
2static_resources:
3  listeners:
4    - name: listener_0
5      address:
6        socket_address:
7          address: 0.0.0.0
8          port_value: 10000
9      filter_chains:
10        - filters:
11            - name: envoy.filters.network.http_connection_manager
12              typed_config:
13                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
14                stat_prefix: ingress_http
15                route_config:
16                  name: local_route
17                  virtual_hosts:
18                    - name: local_service
19                      domains: ["*"]
20                      routes:
21                        - match:
22                            prefix: "/"
23                          route:
24                            cluster: service_backend
25  clusters:
26    - name: service_backend
27      connect_timeout: 5s
28      type: STRICT_DNS
29      lb_policy: ROUND_ROBIN
30      load_assignment:
31        cluster_name: service_backend
32        endpoints:
33          - lb_endpoints:
34              - endpoint:
35                  address:
36                    socket_address:
37                      address: backend
38                      port_value: 8080

#Usage

bash
1docker run -d \
2  -v $(pwd)/envoy.yaml:/etc/envoy/envoy.yaml \
3  -p 10000:10000 \
4  envoyproxy/envoy:v1.28-latest

[!TIP] Pro Tip: Envoy powers Istio, Consul Connect, and many other meshes!