扩展配置
Envoy 中的每个配置资源在 typed_config
中都有一个类型 URL。此类型对应于一个版本化的模式。类型 URL 唯一标识一个能够解释配置的扩展。 name
字段是可选的,可以用作标识符或扩展配置特定实例的注释。例如,以下过滤器配置片段是允许的
14 - name: front-http-proxy
15 typed_config:
16 "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
17 stat_prefix: ingress_http
18 codec_type: AUTO
19 rds:
20 route_config_name: local_route
21 config_source:
22 api_config_source:
23 api_type: GRPC
24 grpc_services:
25 - envoy_grpc:
26 cluster_name: xds_cluster
27 http_filters:
28 - name: front-router
29 typed_config:
30 "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
31 dynamic_stats: true
32 clusters:
33 - type: STRICT_DNS
如果控制平面缺乏扩展的模式定义,则应使用 xds.type.v3.TypedStruct
作为通用容器。其中的类型 URL 随后由客户端用来将内容转换为类型化的配置资源。例如,上面的示例可以写成如下
14 - name: front-http-proxy
15 typed_config:
16 "@type": type.googleapis.com/xds.type.v3.TypedStruct
17 type_url: type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
18 value:
19 stat_prefix: ingress_http
20 codec_type: AUTO
21 rds:
22 route_config_name: local_route
23 config_source:
24 api_config_source:
25 api_type: GRPC
26 grpc_services:
27 - envoy_grpc:
28 cluster_name: xds_cluster
29 http_filters:
30 - name: front-router
31 typed_config:
32 "@type": type.googleapis.com/xds.type.v3.TypedStruct
33 type_url: type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
34 value:
35 dynamic_stats: true
36 clusters:
37 - type: STRICT_DNS
发现服务
监听器过滤器
对于监听器过滤器,发现服务配置为: 动态监听器过滤器重新配置。动态监听器过滤器配置仅在 TCP 监听器中支持。如果缺少动态配置,连接将被拒绝,直到更新有效的配置。
网络过滤器
对于下游网络过滤器,发现服务配置为: 动态过滤器重新配置。如果缺少动态配置,连接将被拒绝,直到更新有效的配置。当过滤器配置更新时,新的配置将仅应用于新的连接,现有连接将继续使用旧的过滤器配置。
HTTP 过滤器
对于 HTTP 过滤器,HTTP 连接管理器支持 动态过滤器重新配置。如果配置缺少本地 HTTP 响应,则将返回 ‘500’ 状态码。
UDP 会话过滤器
对于 UDP 会话过滤器,UDP 代理支持 动态过滤器重新配置。如果配置缺少 UDP 会话,将被删除。
统计信息
除了对 xDS 订阅支持的 统计信息 之外,还支持以下统计信息,用于监听器过滤器、下游网络过滤器和 HTTP 过滤器,根目录为 extension_config_discovery.<stat_prefix>.<extension_config_name>。
对于 TCP 监听器过滤器,<stat_prefix> 的值为 tcp_listener_filter。
对于下游网络过滤器,<stat_prefix> 的值为 network_filter。
对于上游网络过滤器,<stat_prefix> 的值为 upstream_network_filter。
对于下游 HTTP 过滤器,<stat_prefix> 的值为 http_filter。
对于上游 HTTP 过滤器,<stat_prefix> 的值为 upstream_http_filter。
对于 UDP 会话过滤器,<stat_prefix> 的值为 udp_session_filter。
名称 |
类型 |
描述 |
---|---|---|
config_reload |
计数器 |
成功配置更新的总数 |
config_fail |
计数器 |
配置更新失败的总数 |
config_conflict |
计数器 |
配置更新冲突应用的总数;当新的监听器由于类型 URL 无效而无法重用已订阅的扩展配置时,可能会发生这种情况。 |
此外,还支持以下统计信息,以指示由于缺少配置而关闭了连接,根目录为 listener.<address>(如果 stat_prefix 非空,则为 listener.<stat_prefix>)。
名称 |
类型 |
描述 |
---|---|---|
extension_config_missing |
计数器 |
由于缺少监听器过滤器扩展配置而关闭的连接总数 |
network_extension_config_missing |
计数器 |
由于缺少网络过滤器扩展配置而关闭的连接总数 |