Skip to content

Что такое Envoy

Коротко:

Envoy — high-performance L7 proxy, originally от Lyft (2016), CNCF graduated. Основа most popular service mesh implementations (Istio, AWS App Mesh, Consul Connect). C++ rewrite всех best ideas из nginx/HAProxy. Features: HTTP/2, gRPC, WebSocket, advanced routing, circuit breakers, observability. Configuration через YAML + xDS API для dynamic config.

Ниже: подробности, пример, смежные термины, FAQ.

Подробности

  • Listeners: принимают connections на порту
  • Filters: chain handlers (HTTP filter, network filter)
  • Clusters: группы upstream servers
  • xDS API: dynamic config (CDS, LDS, RDS, EDS) через gRPC
  • Admin API: :9901 для stats, config dump, health

Пример

# Envoy listener config
listeners:
- address:
    socket_address: { address: 0.0.0.0, port_value: 80 }
  filter_chains:
  - filters:
    - name: envoy.filters.network.http_connection_manager
      typed_config:
        stat_prefix: ingress_http
        route_config:
          name: local_route
          virtual_hosts:
          - name: backend
            domains: ["*"]
            routes:
            - match: { prefix: "/" }
              route: { cluster: service_backend }

Смежные термины

Больше по теме

Часто задаваемые вопросы

Envoy vs nginx?

nginx: battle-tested, simple config, strong static file serving. Envoy: better для microservices (gRPC, dynamic config, mesh-ready).

Standalone Envoy — use case?

Front proxy / API gateway (replaces nginx + HAProxy). Или edge proxy для Kubernetes ingress.

Configuration — complex?

Да. Envoy YAML verbose. В service mesh deploys — конфиг генерируется control plane'ом автоматически.