配置来源 (proto)

config.core.v3.ApiConfigSource

[config.core.v3.ApiConfigSource proto]

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

{
  "api_type": ...,
  "transport_api_version": ...,
  "cluster_names": [],
  "grpc_services": [],
  "refresh_delay": {...},
  "request_timeout": {...},
  "rate_limit_settings": {...},
  "set_node_on_first_message_only": ...,
  "config_validators": []
}
api_type

(config.core.v3.ApiConfigSource.ApiType) API 类型 (gRPC、REST、增量 gRPC)

transport_api_version

(config.core.v3.ApiVersion) xDS 传输协议的 API 版本。这描述了 xDS gRPC/REST 端点以及线上使用的 [增量]DiscoveryRequest/Response 版本。

cluster_names

(repeated string) 集群名称应仅与 REST 一起使用。如果定义了 > 1 个集群,如果发生任何类型的故障,将循环遍历集群。

注意

名为 cluster_name 的集群必须是静态定义的,其类型不能是 EDS

grpc_services

(repeated config.core.v3.GrpcService) 可以为 GRPC 提供多个 gRPC 服务。如果定义了 > 1 个集群,如果发生任何类型的故障,将循环遍历服务。

refresh_delay

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

request_timeout

(Duration) 对于 REST API,请求超时。如果未设置,将使用 1 秒的默认值。

rate_limit_settings

(config.core.v3.RateLimitSettings) 对于 GRPC API,速率限制设置。如果存在,Envoy 发出的发现请求将受到速率限制。

set_node_on_first_message_only

(bool) 对于流式 gRPC 配置类型,跳过后续发现请求中的节点标识符。

config_validators

(repeated config.core.v3.TypedExtensionConfig) 当从 ApiConfigSource 收到新更新时将执行的配置验证器列表。请注意,每个验证器都处理特定的 xDS 服务类型,并且只有与类型 url(在 :ref: DiscoveryResponse:ref: DeltaDiscoveryResponse 中)相对应的验证器才会被调用。如果验证器返回 false 或抛出异常,则配置将被客户端拒绝,并且会发送 NACK。

提示

此扩展类别具有以下已知扩展

枚举 config.core.v3.ApiConfigSource.ApiType

[config.core.v3.ApiConfigSource.ApiType proto]

可以通过 REST 或 gRPC 获取 API。

DEPRECATED_AND_UNAVAILABLE_DO_NOT_USE

(默认) ⁣理想情况下这应该是“保留 0”,但不能保留默认值。相反,如果它被使用,我们将抛出一个异常。

REST

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

GRPC

⁣SotW gRPC 服务。

DELTA_GRPC

⁣使用增量 xDS gRPC 服务,即 DeltaDiscovery{Request,Response} 而不是 Discovery{Request,Response}。增量 xDS gRPC 服务不会像每次更新时都向 Envoy 发送整个状态一样,而只是发送自上次更新以来的更改。

config.core.v3.AggregatedConfigSource

[config.core.v3.AggregatedConfigSource proto]

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

config.core.v3.RateLimitSettings

[config.core.v3.RateLimitSettings proto]

要应用于 Envoy 发出的发现请求的速率限制设置。

{
  "max_tokens": {...},
  "fill_rate": {...}
}
max_tokens

(UInt32Value) 用于限制发现请求调用的速率限制的最大令牌数。如果未设置,将使用 100 的默认值。

fill_rate

(DoubleValue) 每秒填充令牌的速率。如果未设置,将使用每秒 10 个令牌的默认填充速率。最小填充速率为每年一次。填充速率较低将设置为每年一次。

config.core.v3.PathConfigSource

[config.core.v3.PathConfigSource proto]

本地文件系统路径配置来源。

{
  "path": ...,
  "watched_directory": {...}
}
path

(string, 必需) 文件系统上的路径,用于获取和监视配置更新。当为 secret 获取配置时,证书和密钥文件也会被监视以获取更新。

注意

源路径必须在配置加载时存在。

注意

如果配置 watched_directory,Envoy 将监视文件路径以进行移动操作。这是因为通常只有移动操作是原子的。可以在这里使用与 运行时文档 中展示的相同文件交换方法。如果配置了 watched_directory,则不会在此路径上直接放置监视器。相反,将使用配置的 watched_directory 来触发此路径的重新加载。某些部署场景中需要这样做。有关更多信息,请参见下文。

watched_directory

(config.core.v3.WatchedDirectory) 如果配置,此目录将被监视以进行移动操作。当此目录中的条目被移动到时,将重新加载 path。某些部署场景中需要这样做。

具体来说,如果尝试使用 Kubernetes ConfigMap 加载 xDS 资源,则可以使用以下配置:1. 将 xds.yaml 存储在 ConfigMap 中。2. 将 ConfigMap 装载到 /config_map/xds 3. 配置路径 /config_map/xds/xds.yaml 4. 配置监视目录 /config_map/xds

上述配置将确保 Envoy 监视拥有目录以进行移动操作,这是由于 Kubernetes 在原子更新期间如何管理 ConfigMap 符号链接。

config.core.v3.ConfigSource

[config.core.v3.ConfigSource proto]

用于 侦听器集群路由端点 等的配置可以从文件系统或 xDS API 源获取。文件系统配置使用 inotify 监视更新。

{
  "path": ...,
  "path_config_source": {...},
  "api_config_source": {...},
  "ads": {...},
  "initial_fetch_timeout": {...},
  "resource_api_version": ...
}
path

(string) 已弃用,推荐使用 path_config_source。请改用该字段。

必须设置 pathpath_config_sourceapi_config_sourceads 中的其中一个。

path_config_source

(config.core.v3.PathConfigSource) 本地文件系统路径配置来源。

必须设置 pathpath_config_sourceapi_config_sourceads 中的其中一个。

api_config_source

(config.core.v3.ApiConfigSource) API 配置来源。

必须设置 pathpath_config_sourceapi_config_sourceads 中的其中一个。

ads

(config.core.v3.AggregatedConfigSource) 当设置时,ADS 将用于获取资源。将使用引导配置中的 ADS API 配置来源。

必须设置 pathpath_config_sourceapi_config_sourceads 中的其中一个。

initial_fetch_timeout

(Duration) 当指定此超时时间时,Envoy 在此 xDS 订阅的 初始化过程 中,将等待不超过指定时间来接收第一个配置响应。达到超时时间后,即使第一个配置尚未传递,Envoy 也会进入下一个初始化阶段。计时器在 xDS API 订阅开始时启动,并在第一个配置更新或错误时禁用。0 表示没有超时 - Envoy 将无限期地等待第一个 xDS 配置(除非其他超时适用)。默认值为 15 秒。

resource_api_version

(config.core.v3.ApiVersion) xDS 资源的 API 版本。这隐含了客户端将请求资源的类型 URL 以及客户端预期将传递的资源类型。

config.core.v3.ExtensionConfigSource

[config.core.v3.ExtensionConfigSource proto]

针对延迟绑定扩展配置的配置源指定器。父资源将被预热,直到所有初始扩展配置都收到,除非设置了应用默认配置的标志。随后的扩展更新在每个工作线程的基础上是原子的。一旦将扩展配置应用于请求或连接,它将在处理期间保持不变。如果由于超时等原因导致初始扩展配置传递失败,则将应用可选的默认配置。如果没有默认配置,则扩展将被禁用,直到收到扩展配置。禁用扩展的行为取决于上下文。例如,具有禁用扩展过滤器的过滤器链将拒绝所有传入的流。

{
  "config_source": {...},
  "default_config": {...},
  "apply_default_config_without_warming": ...,
  "type_urls": []
}
config_source

(config.core.v3.ConfigSource)

default_config

(Any) 如果无法接收初始扩展配置或设置了 apply_default_config_without_warming 标志,则可选的默认配置用作初始配置。

apply_default_config_without_warming

(bool) 在不预热和等待第一个发现响应的情况下,使用默认配置作为初始配置。需要提供默认配置。

type_urls

(repeated string, REQUIRED) 一组允许的扩展类型 URL。如果扩展配置更新与集合中的任何类型 URL 不匹配,则会被拒绝。

Enum config.core.v3.ApiVersion

[config.core.v3.ApiVersion proto]

xDS API 和非 xDS 服务版本。这用于描述资源和传输协议版本(在不同的配置字段中)。

AUTO

(DEFAULT) ⁣未指定时,我们假设为 v3;它是唯一支持的版本。

V2

⁣使用 xDS v2 API。这不再受支持。

V3

⁣使用 xDS v3 API。