envoy xds有哪些类型,分别表示什么意思

Envoy 使用 XDS(eXtensible Discovery Service)来动态配置代理的各种方面。XDS 配置通过不同类型的资源来管理 Envoy 的行为。主要的 XDS 类型包括:

1. LDS (Listener Discovery Service)

  • 作用: 管理 Envoy 的监听器(Listener)配置。
  • 用途: 指定 Envoy 监听的端口和处理的网络连接类型(如 HTTP、TCP)。每个监听器可以定义其使用的过滤器链(Filter Chain)和网络协议。

2. RDS (Route Discovery Service)

  • 作用: 管理 Envoy 的路由配置。
  • 用途: 定义如何将请求路由到不同的集群或服务。RDS 控制路由规则、重定向、路由优先级等。

3. CDS (Cluster Discovery Service)

  • 作用: 管理 Envoy 的集群(Cluster)配置。
  • 用途: 配置 Envoy 如何连接和负载均衡到后端服务或集群。集群定义了服务的终端节点、负载均衡策略、连接池配置等。

4. EDS (Endpoint Discovery Service)

  • 作用: 管理集群的具体端点(Endpoint)配置。
  • 用途: 定义集群中的实际服务器或节点。EDS 提供了集群中可用端点的动态列表,并允许 Envoy 实现负载均衡和故障转移。

5. SDS (Secret Discovery Service)

  • 作用: 管理 Envoy 的秘密(Secret)配置,如 TLS 证书和密钥。
  • 用途: 提供 TLS 证书和密钥信息,供 Envoy 用于加密通信。SDS 支持动态加载和更新秘密,确保安全通信的稳定性。

6. ADS (Aggregated Discovery Service)

  • 作用: 统一管理所有 XDS 类型的资源。
  • 用途: 通过一个统一的端点来推送所有 XDS 配置类型。ADS 简化了配置管理和推送过程,使 Envoy 能够从单个端点接收多个类型的配置数据。

7. WASM (WebAssembly)

  • 作用: 允许 Envoy 使用 WebAssembly 进行自定义过滤器配置。
  • 用途: 通过 WebAssembly 执行自定义的逻辑和过滤器,用于扩展 Envoy 的功能或处理特定的业务需求。

示例配置

LDS:

{
  "name": "listener_0",
  "address": {
    "socket_address": {
      "address": "0.0.0.0",
      "port_value": 10000
    }
  },
  "filter_chains": [
    {
      "filters": [
        {
          "name": "envoy.filters.network.http_connection_manager",
          "config": {
            "stat_prefix": "ingress_http",
            "route_config": {
              "name": "local_route",
              "virtual_hosts": [...]
            },
            "http_filters": [...]
          }
        }
      ]
    }
  ]
}

RDS:

{
  "name": "local_route",
  "virtual_hosts": [
    {
      "name": "local_service",
      "domains": ["*"],
      "routes": [...]
    }
  ]
}

CDS:

{
  "name": "service_cluster",
  "connect_timeout": "30s",
  "type": "STRICT_DNS",
  "lb_policy": "ROUND_ROBIN",
  "hosts": [...]
}

EDS:

{
  "cluster_name": "service_cluster",
  "endpoints": [
    {
      "lb_endpoints": [
        {
          "endpoint": {
            "address": {
              "socket_address": {
                "address": "192.168.1.1",
                "port_value": 80
              }
            }
          }
        }
      ]
    }
  ]
}

SDS:

{
  "name": "example_cert",
  "tls_certificate": {
    "certificate_chain": {
      "filename": "/etc/certs/tls.crt"
    },
    "private_key": {
      "filename": "/etc/certs/tls.key"
    }
  }
}
  • ADS: 通过 http://localhost:15000/ads 端点统一管理所有配置。

这些 XDS 类型使 Envoy 能够灵活地管理和配置代理的各个方面,从网络层到应用层的路由和安全设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值