#Envoy Proxy
High-performance L7 proxy and communication bus.
#Overview
Envoy is the data plane for most service meshes.
| Feature | Description |
|---|---|
| L7 routing | HTTP/gRPC routing |
| Load balancing | Multiple algorithms |
| Observability | Built-in metrics |
| Dynamic config | xDS 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!