客户端状态发现服务 (CSDS) (proto)

service.status.v3.ClientStatusRequest

[service.status.v3.ClientStatusRequest proto]

请求由节点匹配器列表标识的客户端的客户端状态。

{
  "node_matchers": [],
  "node": {...}
}
node_matchers

(repeated type.matcher.v3.NodeMatcher) 管理服务器可以使用这些匹配条件来识别客户端。匹配遵循 OR 语义。

node

(config.core.v3.Node) 发出 csds 请求的节点。

service.status.v3.PerXdsConfig

[service.status.v3.PerXdsConfig proto]

具有状态的详细配置(每个 xDS)。

{
  "status": ...,
  "client_status": ...,
  "listener_config": {...},
  "cluster_config": {...},
  "route_config": {...},
  "scoped_route_config": {...},
  "endpoint_config": {...}
}
status

(service.status.v3.ConfigStatus) 管理服务器生成的配置状态。如果 CSDS 服务器是 xDS 客户端,则不会存在。

client_status

(service.status.v3.ClientConfigStatus) 客户端配置状态由 xDS 客户端填充。如果 CSDS 服务器是 xDS 服务器,则不会存在。无论客户端配置状态是什么,xDS 客户端都应始终转储最新的已接受 xDS 配置。

注意

此字段已弃用。请使用 ClientResourceStatus 代替每个资源配置状态。

listener_config

(admin.v3.ListenersConfigDump)

仅一个 listener_configcluster_configroute_configscoped_route_configendpoint_config 可以设置。

cluster_config

(admin.v3.ClustersConfigDump)

仅一个 listener_configcluster_configroute_configscoped_route_configendpoint_config 可以设置。

route_config

(admin.v3.RoutesConfigDump)

仅一个 listener_configcluster_configroute_configscoped_route_configendpoint_config 可以设置。

scoped_route_config

(admin.v3.ScopedRoutesConfigDump)

仅一个 listener_configcluster_configroute_configscoped_route_configendpoint_config 可以设置。

endpoint_config

(admin.v3.EndpointsConfigDump)

仅一个 listener_configcluster_configroute_configscoped_route_configendpoint_config 可以设置。

service.status.v3.ClientConfig

[service.status.v3.ClientConfig proto]

特定客户端的所有 xds 配置。

{
  "node": {...},
  "xds_config": [],
  "generic_xds_configs": [],
  "client_scope": ...
}
node

(config.core.v3.Node) 特定客户端的节点。

xds_config

(repeated service.status.v3.PerXdsConfig) 此字段已弃用,有利于更简单且结构统一的 generic_xds_configs。

generic_xds_configs

(repeated service.status.v3.ClientConfig.GenericXdsConfig) 表示通用 xDS 配置,确切的配置结构取决于类型 URL(例如,如果是 CDS,则为 Cluster)

client_scope

(string) 对于 xDS 客户端,数据使用范围。例如,gRPC 指示数据平面目标或数据与 gRPC 服务器相关联。

service.status.v3.ClientConfig.GenericXdsConfig

[service.status.v3.ClientConfig.GenericXdsConfig proto]

GenericXdsConfig 用于指定配置状态和通过其类型 URL 标识的任何 xDS 资源的转储。它是现在已弃用的 ListenersConfigDump、ClustersConfigDump 等的通用版本

{
  "type_url": ...,
  "name": ...,
  "version_info": ...,
  "xds_config": {...},
  "last_updated": {...},
  "config_status": ...,
  "client_status": ...,
  "is_static_resource": ...
}
type_url

(string) Type_url 表示 xDS 资源类型的完全限定名称,例如 envoy.v3.Cluster、envoy.v3.ClusterLoadAssignment 等。

name

(string) xDS 资源的名称

version_info

(string) 这是上次处理的 xDS 发现响应中的 version_info。如果只有静态引导监听器,则此字段将为空字符串

xds_config

(Any) xDS 资源配置。实际内容取决于类型

last_updated

(Timestamp) xDS 资源上次更新的时间戳

config_status

(service.status.v3.ConfigStatus) 每个 xDS 资源配置状态。它由管理服务器生成。如果 CSDS 服务器是 xDS 客户端,则不会存在。

client_status

(admin.v3.ClientResourceStatus) 来自 xDS 客户端视角的每个 xDS 资源状态

is_static_resource

(bool) 如果它是在启动时通过文件提供的配置中指定的,则 Is static resource 为 true。

service.status.v3.ClientStatusResponse

[service.status.v3.ClientStatusResponse proto]

{
  "config": []
}
config

(repeated service.status.v3.ClientConfig) 针对 ClientStatusRequest 中指定的客户端的客户端配置。

Enum service.status.v3.ConfigStatus

[service.status.v3.ConfigStatus proto]

从管理服务器视角查看配置的状态。

UNKNOWN

(DEFAULT) ⁣状态信息不可用/未知。

SYNCED

⁣管理服务器已将配置发送到客户端并收到 ACK。

NOT_SENT

⁣配置未发送。

STALE

⁣管理服务器已将配置发送到客户端,但尚未收到 ACK/NACK。

ERROR

⁣管理服务器已将配置发送到客户端,但收到 NACK。附加的配置转储将是最新配置(被拒绝的配置),因为它是在管理服务器中持久化的版本。

Enum service.status.v3.ClientConfigStatus

[service.status.v3.ClientConfigStatus proto]

从客户端视角查看配置的状态。

CLIENT_UNKNOWN

(DEFAULT) ⁣配置状态不可用/未知。

CLIENT_REQUESTED

⁣客户端已请求配置,但尚未从管理服务器收到任何配置。

CLIENT_ACKED

⁣客户端已收到配置并回复 ACK。

CLIENT_NACKED

⁣客户端已收到配置并回复 NACK。值得注意的是,附加的配置转储不是被 NACK 的版本,而是最新的已接受版本。如果尚未接受任何配置,则附加的配置转储将为空。