SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы

Назад

Envoy: установка и настройка


Метки: envoy

Установка

Скачиваем последнюю версию https://github.com/traefik/traefik/releases

ENVOYVERSION=1.33.0
wget https://github.com/envoyproxy/envoy/releases/download/v${ENVOYVERSION}/envoy-${ENVOYVERSION}-linux-x86_64
mv envoy-${ENVOYVERSION}-linux-x86_64 /usr/local/bin/envoy
chmod +x /usr/local/bin/envoy

Настройка

mkdir -p /etc/envoy/conf.d

Файл /etc/envoy/envoy.yml

admin:
  address:
    socket_address:
      address: 10.2.0.1
      port_value: 9902

node:
cluster: test-cluster
id: test-id

dynamic_resources:
cds_config:
path: /etc/envoy/conf.d/cds.yml
lds_config:
path: /etc/envoy/conf.d/lds.yml

HTTP

Cluster discovery service (CDS)

Файл /etc/envoy/conf.d/cds.yml

resources:
- "@type": type.googleapis.com/envoy.config.cluster.v3.Cluster
  name: example_proxy_cluster
  type: STRICT_DNS
  typed_extension_protocol_options:
    envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
      "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
      explicit_http_config:
        http2_protocol_options: {}
  load_assignment:
    cluster_name: example_proxy_cluster
    endpoints:
    - lb_endpoints:
      - endpoint:
          address:
            socket_address:
              address: www.envoyproxy.io
              port_value: 443
  transport_socket:
    name: envoy.transport_sockets.tls
    typed_config:
      "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
      sni: www.envoyproxy.io

Listener discovery service (LDS)

Файл /etc/envoy/conf.d/lds.yml

resources:
- "@type": type.googleapis.com/envoy.config.listener.v3.Listener
  name: listener_0
  address:
    socket_address:
      address: 0.0.0.0
      port_value: 10000
  filter_chains:
  - filters:
    - name: envoy.http_connection_manager
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
        stat_prefix: ingress_http
        http_filters:
        - name: envoy.router
          typed_config:
            "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
        route_config:
          name: local_route
          virtual_hosts:
          - name: local_service
            domains:
            - "*"
            routes:
            - match:
                prefix: "/"
              route:
                host_rewrite_literal: www.envoyproxy.io
                cluster: example_proxy_cluster

TCP