• 通用类型
    • Locality
    • Node
    • Endpoint
    • Metadata
    • RuntimeUInt32
    • HeaderValue
    • HeaderValueOption
    • ApiConfigSource
    • ApiConfigSource.ApiType (Enum)
    • AggregatedConfigSource
    • ConfigSource
    • TransportSocket
    • RoutingPriority (Enum)
    • RequestMethod (Enum)
  • 返回

    通用类型

    • Locality
    • Node
    • Endpoint
    • Metadata
    • RuntimeUInt32
    • HeaderValue
    • HeaderValueOption
    • ApiConfigSource
    • ApiConfigSource.ApiType (Enum)
    • AggregatedConfigSource
    • ConfigSource
    • TransportSocket
    • RoutingPriority (Enum)
    • RequestMethod (Enum)

    Locality

    Locality proto

    标识Envoy运行所在的位置或上游主机运行所在的位置。

    1. {
    2. "region": "...",
    3. "zone": "...",
    4. "sub_zone": "..."
    5. }
    • region

      (string) 当前属于哪个区域

    • zone

      (string) AWS上的可用区域(AZ),GCP区域等

    • sub_zone

      (string) 当用于上游主机的位置时,该字段进一步将区域分成更小的子区域,从而可以独立地进行负载平衡。

    Node

    Node proto

    标识特定的Envoy实例。节点标识符将呈现给管理服务器,管理服务器可以使用该标识符来区分每个Envoy服务的配置。

    1. {
    2. "id": "...",
    3. "cluster": "...",
    4. "metadata": "{...}",
    5. "locality": "{...}",
    6. "build_version": "..."
    7. }
    • id

      (string) Envoy节点的标识符。

    • cluster

      (string) Envoy节点所属的群集。

    • metadata

      (Struct) 所在节点的扩展元数据,Envoy将直接传递给管理服务器。

    • locality

      (Locality) 指定Envoy实例的运行位置。

    • build_version

      (string) 在金丝雀(灰度发布)期间管理服务器,知道哪个版本的Envoy正在进行测试。这将由Envoy在管理服务器RPC中设置。

    Endpoint

    Endpoint proto

    上游主机标识符

    1. {
    2. "address": "{...}"
    3. }
    • address

      (Address)

    Metadata

    Metadata proto

    元数据用于监听器的匹配场景,为路由、端口、过滤器链等提供了额外的输入。它的结构是从过滤器名称(反向DNS格式)到特定的过滤器元数据的映射。过滤器的元数据key/value将合并在连接并发生请求时处理,同一个key的更新值将覆盖旧值。

    元数据的使用示例,在HTTP连接管理追加附加信息,将体现在envoy.http_connection_manager.access_log命名空间。

    为了实现负载平衡,元数据提供了一种集群端口子集的方法。端口匹配关联的元数据对象,路由匹配关联的元数据对象。当前有一些定义的元数据用于此目的:

    • {"envoy.lb": {"canary": <bool> }} 这表明了一个端口的canary状态,并且用于头部(x-envoy-upstream-canary)和统计处理。
    1. {
    2. "filter_metadata": "{...}"
    3. }
    • filter_metadata

      (map) key是反向DNS过滤器名称,例如com.acme.widget。命名空间envoy.*保留给Envoy内置过滤器使用。

    RuntimeUInt32

    RuntimeUInt32 proto

    若没有指定时,则在运行时生成的uint32默认值。

    1. {
    2. "default_value": "...",
    3. "runtime_key": "..."
    4. }
    • default_value

      (uint32) 默认值,运行时没有可用的值时。

    • runtime_key

      (string, REQUIRED) 运行时,通过key以获取相应的value。如果定义,则使用此值。

    HeaderValue

    HeaderValue proto

    Header键值对。

    1. {
    2. "key": "...",
    3. "value": "..."
    4. }
    • key

      (string) Header Key.

    • value

      (string) Header Value.

      HTTP访问日志记录的格式说明符可以在此处应用,但未知的Header值将替换为空字符串而不是-

    HeaderValueOption

    HeaderValueOption proto

    Header键值对追加控制选项。

    1. {
    2. "header": "{...}",
    3. "append": "{...}"
    4. }
    • header

      (HeaderValue) 控制选项所应用的Header键值对。

    • append

      (BoolValue) 是否添加的开关,如果为true(默认值),则该值将附加到现有值。

    ApiConfigSource

    ApiConfigSource proto

    API配置源。这标识了Envoy将用来获取xDS的API类型和群集。

    1. {
    2. "api_type": "...",
    3. "cluster_name": [],
    4. "refresh_delay": "{...}"
    5. }
    • api_type

      (ApiConfigSource.ApiType) API类型。

    • cluster_name

      (string, REQUIRED) 可以提供多个群集名称。如果定义了大于1个集群,如果发生任何类型的故障,则将循环切换。

    • refresh_delay

      (Duration) 对于REST API,连续轮询之间的间隔。

    ApiConfigSource.ApiType (Enum)

    ApiConfigSource.ApiType proto

    可以通过REST API或gRPC获取。

    • REST_LEGACY

      (DEFAULT) REST-JSON对应于传统v1 API。

    • REST

      REST-JSON v2 API,将使用v2 protos规范的JSON编码。

    • GRPC

      gRPC v2 API。

    AggregatedConfigSource

    AggregatedConfigSource proto

    聚合发现服务(ADS)选项。这目前是空的,但在ConfigSource中设置时可以用来指定要使用ADS。

    1. {}

    ConfigSource

    ConfigSource proto

    监听器,集群,路由,端口等配置可以从文件系统或xDS API源获取。使用inotify监视文件系统配置以进行更新。

    1. {
    2. "path": "...",
    3. "api_config_source": "{...}",
    4. "ads": "{...}"
    5. }
    • path

      (string) 配置从文件系统路径来源来更新配置。

    • api_config_source

      (ApiConfigSource) API配置源。

    • ads

      (AggregatedConfigSource) 配置使用ADS将做为配置源。将使用引导程序配置中的ADS API配置源。

      注意:必须选择path,api_config_source,ads其中一个选项配置。

    TransportSocket

    TransportSocket proto

    监听器和集群中传输套接字的配置。如果配置为空,则将根据tls_context的平台和现有的来选择默认的传输套接字实现和配置。

    1. {
    2. "name": "...",
    3. "config": "{...}"
    4. }
    • name

      (string, REQUIRED) 要实例化的传输套接字的名称。该名称必须匹配支持的传输套接字实现。

    • config

      (Struct) 具体将要被实例化的传输套接字配置。请参阅支持的传输套接字实现以获取更多信息。

    RoutingPriority (Enum)

    RoutingPriority proto

    Envoy在路由和虚拟集群级别,都支持上游优先级路由。当前的实现是针对每个优先级别,使用不同的连接池和断路设置。这意味着即使对于HTTP/2请求,两个物理连接也将被用于上游主机。将来,Envoy可能会支持真正的HTTP/2优先级,而不是单个上行连接。

    • DEFAULT

      (DEFAULT)

    • HIGH

    RequestMethod (Enum)

    RequestMethod proto

    HTTP请求方法

    • METHOD_UNSPECIFIED

      (DEFAULT)
    • GET
    • HEAD
    • POST
    • PUT
    • DELETE
    • CONNECT
    • OPTIONS
    • TRACE

    返回

    • 上一级
    • 首页目录