配置来源 (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。
- 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
。请改用该字段。必须设置 path、path_config_source、api_config_source、ads 中的其中一个。
- path_config_source
(config.core.v3.PathConfigSource) 本地文件系统路径配置来源。
必须设置 path、path_config_source、api_config_source、ads 中的其中一个。
- api_config_source
(config.core.v3.ApiConfigSource) API 配置来源。
必须设置 path、path_config_source、api_config_source、ads 中的其中一个。
- ads
(config.core.v3.AggregatedConfigSource) 当设置时,ADS 将用于获取资源。将使用引导配置中的 ADS API 配置来源。
必须设置 path、path_config_source、api_config_source、ads 中的其中一个。
- 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
- 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。