全局网格选项

影响整个服务网格的配置。

MeshConfig

MeshConfig 定义了 Istio 服务网格的网格范围设置。

字段类型描述必填
proxyListenPortint32

Envoy 应该监听所有出站流量到其他服务的端口。默认端口为 15001。

proxyInboundListenPortint32

Envoy 应该监听所有入站流量到 Pod/VM 的端口,并将流量捕获到此端口。默认端口为 15006。

proxyHttpPortint32

如果设置,Envoy 应该监听 HTTP PROXY 请求的端口。

connectTimeout持续时间

Envoy 使用的连接超时时间。(必须 >=1ms)默认超时时间为 10 秒。

tcpKeepaliveTcpKeepalive

如果设置,则在套接字上设置 SO_KEEPALIVE 以启用 TCP Keepalives。

ingressClass字符串

要由 Istio 入站控制器处理的入站资源的类别。这对应于 kubernetes.io/ingress.class 注解的值。

ingressService字符串

用于 Istio 入站控制器的 Kubernetes 服务的名称。如果未指定入站控制器,则使用默认值 istio-ingressgateway

ingressControllerModeIngressControllerMode

定义是否对带注释的或所有入站资源使用 Istio 入站控制器。默认模式为 STRICT

ingressSelector字符串

定义哪个网关部署用作入站控制器。此字段对应于 Gateway.selector 字段,并将设置为 istio: INGRESS_SELECTOR。默认情况下,使用 ingressgateway,它将选择默认的 IngressGateway,因为它具有 istio: ingressgateway 标签。建议此值与 ingress_service 相同。

enableTracing布尔值

控制跟踪跨度和请求 ID 生成的标志。需要在代理配置中定义跟踪跨度收集器。

accessLogFile字符串

代理访问日志的文件地址(例如 /dev/stdout)。空值禁用访问日志记录。

accessLogFormat字符串

代理访问日志的格式。空值导致代理的默认访问日志格式

accessLogEncodingAccessLogEncoding

代理访问日志的编码(TEXTJSON)。默认值为 TEXT

enableEnvoyAccessLogService布尔值

此标志启用 Envoy 的 gRPC 访问日志服务。有关 Envoy 的 gRPC 访问日志服务 API 的详细信息,请参阅 访问日志服务。默认值为 false

disableEnvoyListenerLog布尔值

此标志禁用 Envoy 监听器日志。请参阅 监听器访问日志 Istio 在“NoRoute”响应标志上启用 Envoy 的监听器访问日志。默认值为 false

defaultConfig代理配置

网关和 sidecar 使用的默认代理配置。在 Kubernetes 的情况下,代理配置在注入过程中应用一次,并在 Pod 的整个生命周期内保持不变。网格配置的其余部分可以在运行时更改,配置会动态分发。在 Kubernetes 上,可以通过 proxy.istio.io/config 注解在各个 Pod 上覆盖此配置。

outboundTrafficPolicyOutboundTrafficPolicy

设置 sidecar 处理应用程序发出的出站流量的默认行为。

可以通过在 Sidecar API 中设置 OutboundTrafficPolicy 在 Sidecar 级别覆盖此设置。

默认模式为 ALLOW_ANY,这意味着允许到未知目的地的出站流量。

inboundTrafficPolicyInboundTrafficPolicy

设置 sidecar 处理传入应用程序流量的默认行为。如果您的应用程序监听 localhost,则需要将其设置为 LOCALHOST

configSourcesConfigSource[]

ConfigSource 描述了网络规则和其他 Istio 配置工件的配置数据源。可以为单个控制平面配置多个数据源。

enableAutoMtlsBoolValue

此标志用于自动为网格内服务到服务的通信启用双向 TLS,默认为 true。如果设置为 true,并且给定服务没有配置相应的 DestinationRule,或者其 DestinationRule 没有指定 ClientTLSSettings,则 Istio 会适当地配置客户端 TLS 配置。更具体地说,如果上游身份验证策略处于 STRICT 模式,则使用 Istio 提供的证书进行双向 TLS 以连接到上游。如果上游服务处于纯文本模式,则使用纯文本。如果上游身份验证策略处于 PERMISSIVE 模式,则当服务器端能够接受双向 TLS 流量时,Istio 会配置客户端以使用双向 TLS。如果服务 DestinationRule 存在并已指定 ClientTLSSettings,则始终使用它。

trustDomain字符串

信任域对应于系统的信任根。请参阅 SPIFFE-ID

trustDomainAliasesstring[]

信任域别名表示 trust_domain 的别名。例如,如果我们有

trustDomain: td1
trustDomainAliases: ["td2", "td3"]

任何具有身份 td1/ns/foo/sa/a-service-accounttd2/ns/foo/sa/a-service-accounttd3/ns/foo/sa/a-service-account 的服务在 Istio 网格中将被视为相同。

caCertificatesCertificateData[]

工作负载到工作负载通信的额外根证书。插件证书(“cacerts”密钥)或自签名证书(“istio-ca-secret”密钥)由 Istiod 自动添加。签署工作负载证书的 CA 证书由 Istio Agent 自动添加。

defaultServiceExportTostring[]

ServiceEntry.export_to 字段的默认值以及通过容器注册表集成导入的服务,例如,这适用于 Kubernetes Service 资源。该值是命名空间名称和保留命名空间别名的列表。允许的命名空间别名为

* - All Namespaces
. - Current Namespace
~ - No Namespace

如果未设置,则系统将使用“*”作为默认值,这意味着服务导出到所有命名空间。

所有命名空间 是不需要限制跨命名空间边界服务的访问或可见性的实现的合理默认值。如果存在此要求,通常最佳实践是将默认值设为 当前命名空间,以便服务默认情况下仅在其自己的命名空间内可见。然后,运营商可以根据需要将服务的可见性扩展到其他命名空间。无命名空间 的使用预计很少见,但对于需要精确依赖项管理的部署(即使在单个命名空间范围内)也可能有用。

有关进一步讨论,请参阅 ServiceEntrySidecarGateway 的参考文档。

defaultVirtualServiceExportTostring[]

VirtualService.export_to 字段的默认值。具有与 default_service_export_to 相同的语法。

如果未设置,则系统将使用“*”作为默认值,这意味着虚拟服务导出到所有命名空间

defaultDestinationRuleExportTostring[]

DestinationRule.export_to 字段的默认值。具有与 default_service_export_to 相同的语法。

如果未设置,则系统将使用“*”作为默认值,这意味着目标规则导出到所有命名空间

rootNamespace字符串

要视为 Istio 配置的管理根命名空间的命名空间。处理叶子命名空间时,Istio 将首先在该命名空间中搜索声明,如果未找到,则将在根命名空间中搜索。在根命名空间中找到的任何匹配声明都将被视为在叶子命名空间中声明。

此处理的精确语义在每个资源类型上都有记录。

localityLbSettingLocalityLoadBalancerSetting

基于位置的负载均衡分布或故障转移设置。如果未指定,则默认情况下将启用基于位置的负载均衡。但是,这需要异常值检测才能对特定服务真正生效,请参阅 https://istio.ac.cn/latest/docs/tasks/traffic-management/locality-load-balancing/failover/

dnsRefreshRate持续时间

配置类型为 STRICT_DNS 的 Envoy 集群的 DNS 刷新率。默认刷新率为 60 秒

h2UpgradePolicyH2UpgradePolicy

指定是否应默认将 http1.1 连接升级到 http2。如果 sidecar 安装在网格中的所有 Pod 上,则应将其设置为 UPGRADE。如果一个或多个服务或命名空间没有 sidecar,则应将其设置为 DO_NOT_UPGRADE。可以通过目标使用 destinationRule.trafficPolicy.connectionPool.http.h2UpgradePolicy 覆盖来启用它。

inboundClusterStatName字符串

在为入站集群发出统计信息时要使用的名称。在计算网络过滤器(如 TCP 和 Redis)的统计信息前缀时,使用相同的模式。默认情况下,Istio 使用模式 inbound|<port>|<port-name>|<service-FQDN> 发出统计信息。例如 inbound|7443|grpc-reviews|reviews.prod.svc.cluster.local。这可以用来覆盖该模式。

模式可以由各种预定义变量组成。支持以下变量。

  • %SERVICE% - 将替换为服务的短主机名。
  • %SERVICE_NAME% - 将替换为服务的名称。
  • %SERVICE_FQDN% - 将替换为服务的 FQDN。
  • %SERVICE_PORT% - 将替换为服务的端口。
  • %TARGET_PORT% - 将替换为服务的目标端口。
  • %SERVICE_PORT_NAME% - 将替换为服务的端口名称。

以下是针对 reviews 支持的模式的一些示例

  • %SERVICE_FQDN%_%SERVICE_PORT% 将使用 reviews.prod.svc.cluster.local_7443 作为统计信息名称。
  • %SERVICE% 将使用 reviews.prod 作为统计信息名称。
outboundClusterStatName字符串

在为出站集群发出统计信息时要使用的名称。在计算网络过滤器(如 TCP 和 Redis)的统计信息前缀时,使用相同的模式。默认情况下,Istio 使用模式 outbound|<port>|<subsetname>|<service-FQDN> 发出统计信息。例如 outbound|8080|v2|reviews.prod.svc.cluster.local。这可以用来覆盖该模式。

模式可以由各种预定义变量组成。支持以下变量。

  • %SERVICE% - 将替换为服务的短主机名。
  • %SERVICE_NAME% - 将替换为服务的名称。
  • %SERVICE_FQDN% - 将替换为服务的 FQDN。
  • %SERVICE_PORT% - 将替换为服务的端口。
  • %SERVICE_PORT_NAME% - 将替换为服务的端口名称。
  • %SUBSET_NAME% - 将替换为子集。

以下是针对 reviews 支持的模式的一些示例

  • %SERVICE_FQDN%_%SERVICE_PORT% 将使用 reviews.prod.svc.cluster.local_7443 作为统计信息名称。
  • %SERVICE% 将使用 reviews.prod 作为统计信息名称。
enablePrometheusMerge

BoolValue

如果启用,Istio 代理会将应用程序公开的指标与 Envoy 和 Istio 代理的指标合并。Sidecar 注射将替换 Pod 上存在的 prometheus.io 注解,并将它们重定向到 Istio 代理,然后 Istio 代理会将应用程序的指标与 Istio 指标合并。这依赖于注解 prometheus.io/scrapeprometheus.io/portprometheus.io/path 注解。如果您正在运行一个单独管理的 Envoy 以及一个 Istio sidecar,这可能会导致问题,因为指标会发生冲突。在这种情况下,建议使用 prometheus.istio.io/merge-metrics: "false" 注解在该部署上禁用聚合。如果未指定,则默认启用。

扩展提供程序ExtensionProvider[]

定义扩展 Istio 功能的扩展提供程序列表。例如,AuthorizationPolicy 可以与扩展提供程序一起使用,以将授权决策委托给自定义授权系统。

默认提供程序DefaultProviders

指定在 Istio 配置资源中默认使用的扩展提供程序。

发现选择器LabelSelector[]

一组 Kubernetes 选择器列表,用于指定 Istio 在计算 sidecar 配置更新时考虑的命名空间集。这可用于通过限制监视和处理的实体(包括服务、Pod 和端点)的数量来减少 Istio 的计算负载。如果省略,Istio 将使用默认行为处理集群中的所有命名空间。列表中的元素是不相交的(OR 语义),即如果命名空间与任何选择器匹配,则将包含该命名空间。以下示例选择与以下任一条件匹配的任何命名空间

  1. 命名空间同时具有这两个标签:env: prodregion: us-east1
  2. 命名空间的标签 app 等于 cassandraspark
discoverySelectors:
  - matchLabels:
      env: prod
      region: us-east1
  - matchExpressions:
    - key: app
      operator: In
      values:
        - cassandra
        - spark

有关选择器语义的更多详细信息,请参阅 Kubernetes 选择器文档

路径规范化ProxyPathNormalization

ProxyPathNormalization 配置 sidecar 和网关如何规范传入和传出 HTTP 请求中的 URL 路径。规范化的路径将在 sidecar 和网关上请求生命周期的所有方面使用,包括出站方向(客户端代理)中的路由决策、入站方向(服务器代理)中的授权策略匹配和执行以及代理到上游服务的 URL 路径。如果未设置,将使用 NormalizationType.DEFAULT 配置。

默认 HTTP 重试策略HTTPRetry

配置默认 HTTP 重试策略。对于以下错误,“connect-failure,refused-stream,unavailable,cancelled,retriable-status-codes”,重试尝试的默认次数设置为 2。将尝试次数设置为 0 将全局禁用重试策略。此设置可以使用虚拟服务 API 在每个主机基础上覆盖。除了 perTryTimeout 之外的重试策略中的所有设置当前都可以通过此字段全局配置。

网格 mTLSTLSConfig

以下配置参数可用于指定网格流量的 TLSConfig。例如,用户可以为 ISTIO_MUTUAL 流量启用最小 TLS 版本,并为非 ISTIO_MUTUAL 流量指定曲线,如下所示

meshConfig:
  meshMTLS:
    minProtocolVersion: TLSV1_3
  tlsDefaults:
    Note: applicable only for non ISTIO_MUTUAL scenarios
    ecdhCurves:
      - P-256
      - P-512

具有 ISTIO_MUTUAL TLS 流量的 workload 之间流量的 mTLS 配置。

注意:网格 mTLS 不尊重 ECDH 曲线。

tlsDefaultsTLSConfig

除 ISTIO_MUTUAL 模式之外的所有流量的 TLS 配置。目前,这仅支持 ecdh_curves 和 cipher_suites 的配置。对于 ISTIO_MUTUAL TLS 设置,请使用 meshMTLS 配置。

标签选择器

标签选择器要求是一个包含值、键和运算符的选择器,这些运算符将键和值关联起来。从 Kubernetes 复制以避免对 Kubernetes 库的昂贵依赖。

字段类型描述必填
matchLabelsmap<string, string>

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 关系。

matchExpressionsLabelSelectorRequirement[]

matchExpressions 是标签选择器要求的列表。这些要求是 AND 关系。

标签选择器要求

标签选择器要求是一个包含值、键和运算符的选择器,这些运算符将键和值关联起来。从 Kubernetes 复制以避免对 Kubernetes 库的昂贵依赖。

字段类型描述必填
key字符串

key 是选择器应用到的标签键。

operator字符串

operator 表示键与一组值的关系。有效的运算符为 In、NotIn、Exists 和 DoesNotExist。

valuesstring[]

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须非空。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间被替换。

配置源

ConfigSource 描述了网格内配置存储的信息。单个控制平面实例可以与一个或多个数据源交互。

字段类型描述必填
address字符串

实现 Istio 网格配置协议 (MCP) 的服务器的地址。可以是 IP 地址或完全限定的 DNS 名称。使用 xds:// 指定基于 grpc 的 xds 后端,使用 k8s:// 指定 k8s 控制器,或使用 fs:/// 指定基于文件的后端,并使用绝对路径指向目录。

tlsSettingsClientTLSSettings

使用 tls_settings 指定要使用的 tls 模式。如果 MCP 服务器使用 Istio 双向 TLS 并与 Pilot 共享根 CA,则将 TLS 模式指定为 ISTIO_MUTUAL

subscribedResourcesResource[]

描述配置的来源,如果未指定,则默认为 MCP

MeshConfig.OutboundTrafficPolicy

OutboundTrafficPolicy 设置 sidecar 处理应用程序未知出站流量的默认行为。

字段类型描述必填
modeMode

MeshConfig.InboundTrafficPolicy

字段类型描述必填
modeMode

MeshConfig.CertificateData

字段类型描述必填
pemstring (oneof)

证书的 PEM 数据。

spiffeBundleUrlstring (oneof)

符合以下要求的 SPIFFE bundle 端点 URL:https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Trust_Domain_and_Bundle.md#the-spiffe-trust-domain-and-bundle 端点应支持基于 Web PKI 的身份验证:https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Trust_Domain_and_Bundle.md#521-web-pki 证书从端点检索。

certSignersstring[]

可选。指定当 Istiod 充当 RA(注册机构)时使用此 trustAnchor 的 Kubernetes 签名者(外部 CA)。如果设置,则用于这些签名者。否则,此 trustAnchor 用于所有签名者。

trustDomainsstring[]

可选。指定此 trustAnchor 数据所属的信任域列表。如果设置,则用于这些信任域。否则,此 trustAnchor 用于默认信任域及其别名。请注意,我们可以为同一个 trust_domain 拥有多个 trustAnchor 数据。在这种情况下,具有相同信任域的 trustAnchors 将合并并一起使用以验证对等证书。如果既未设置 cert_signers 也未设置 trust_domains,则此 trustAnchor 用于所有信任域和所有签名者。如果仅设置 trust_domains,则此 trustAnchor 用于这些信任域和所有签名者。如果仅设置 cert_signers,则此 trustAnchor 用于这些 cert_signers 和所有信任域。如果同时设置了 cert_signers 和 trust_domains,则此 trustAnchor 仅用于这些签名者和信任域。

MeshConfig.CA

字段类型描述必填
address字符串

必需。实现 Istio CA gRPC API 的 CA 服务器的地址。可以是 IP 地址或具有端口的完全限定的 DNS 名称,例如:custom-ca.default.svc.cluster.local:8932、192.168.23.2:9000

tlsSettingsClientTLSSettings

使用 tls_settings 指定要使用的 tls 模式。关于 tls_settings

  • 禁用模式对于 Istiod 通过 Envoy sidecar 发出请求的情况是合法的。禁用模式也可用于测试
  • TLS 双向模式默认开启。如果省略 CA 证书(用于验证 CA 服务器证书的证书捆绑包),Istiod 将使用系统根证书验证 CA 服务器证书。
requestTimeout持续时间

Istiod 向外部 CA 转发 CSR 请求的超时时间,默认:10 秒

istiodSide布尔值

使用 istiod_side 指定 CA 服务器集成到 Istiod 端或 Agent 端,默认:true

MeshConfig.ExtensionProvider

字段类型描述必填
name字符串

必需。一个唯一名称,用于标识扩展提供程序。

envoyExtAuthzHttpEnvoyExternalAuthorizationHttpProvider (oneof)

配置一个外部授权程序,该授权程序使用 HTTP API 实现 Envoy ext_authz 过滤器授权检查服务。

envoyExtAuthzGrpcEnvoyExternalAuthorizationGrpcProvider (oneof)

配置一个外部授权程序,该授权程序使用 gRPC API 实现 Envoy ext_authz 过滤器授权检查服务。

zipkinZipkinTracingProvider (oneof)

配置一个使用 Zipkin API 的跟踪提供程序。

datadogDatadogTracingProvider (oneof)

配置一个 Datadog 跟踪提供程序。

stackdriverStackdriverProvider (oneof)

配置一个 Stackdriver 提供程序。

skywalkingSkyWalkingTracingProvider (oneof)

配置一个 Apache SkyWalking 提供程序。

opentelemetryOpenTelemetryTracingProvider (oneof)

配置一个 OpenTelemetry 跟踪提供程序。

prometheusPrometheusMetricsProvider (oneof)

配置一个 Prometheus 指标提供程序。

envoyFileAccessLogEnvoyFileAccessLogProvider (oneof)

配置一个 Envoy 文件访问日志提供程序。

envoyHttpAlsEnvoyHttpGrpcV3LogProvider (oneof)

为 HTTP 流量配置 Envoy 访问日志服务提供程序。

envoyTcpAlsEnvoyTcpGrpcV3LogProvider (oneof)

为 TCP 流量配置 Envoy 访问日志服务提供程序。

envoyOtelAlsEnvoyOpenTelemetryLogProvider (oneof)

配置一个 Envoy Open Telemetry 访问日志服务提供程序。

MeshConfig.DefaultProviders

保存对将在其他 Istio 配置资源中默认使用的提供程序的名称引用,如果未指定提供程序。

这些名称必须与 extension_providers 中定义的提供程序匹配,该提供程序是受支持的跟踪提供程序之一。

字段类型描述必填
tracingstring[]

跟踪的默认提供程序的名称。

metricsstring[]

指标的默认提供程序的名称。

accessLoggingstring[]

访问日志的默认提供程序的名称。

MeshConfig.ProxyPathNormalization

字段类型描述必填
normalizationNormalizationType

MeshConfig.TLSConfig

字段类型描述必填
minProtocolVersionTLSProtocol

可选:最小 TLS 协议版本。默认最小 TLS 版本将为 TLS 1.2。由于服务器可能不是 Envoy 并且设置为 TLS 1.2(例如,在没有 sidecar 的情况下使用 mTLS 的 workload),因此客户端的最小 TLS 版本也可能为 TLS 1.2。在当前的 Istio 实现中,最大 TLS 协议版本为 TLS 1.3。

ecdhCurvesstring[]

可选:如果指定,则 TLS 连接将仅支持为 DH 密钥交换指定的 ECDH 曲线。如果未指定,将使用 Envoy 强制执行的默认曲线。有关默认曲线的详细信息,请参阅 Ecdh 曲线

cipherSuites

string[]

可选:如果指定,则 TLS 连接在协商 TLS 1.0-1.2 时将仅支持指定的密码列表。如果未指定,则将使用以下密码套件

ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
AES256-GCM-SHA384
AES128-GCM-SHA256

MeshConfig.ServiceSettings.Settings

所选服务的设置。

字段类型描述必填
clusterLocal布尔值

如果为 true,则指定客户端和服务端点必须位于同一个集群中。默认情况下,在多集群部署中,Istio 控制平面假设所有服务端点都可从网格中任何集群中的任何客户端访问。此配置选项将客户端可见的服务端点集限制在集群范围内。

在某些常见情况下,这可能很有用

  • 服务(或服务组)本质上是特定于集群的,并且该集群具有本地存储。例如,kube-system 命名空间(例如 Kube API 服务器)。
  • 网格管理员希望将服务缓慢迁移到 Istio。他们可能会首先将服务设置为集群本地,然后将其缓慢过渡到网格范围。他们可以按服务执行此操作(例如 mysvc.myns.svc.cluster.local)或作为一组执行此操作(例如 *.myns.svc.cluster.local)。

默认情况下,Istio 将 kubernetes.default.svc(即 API 服务器)以及 kube-system 命名空间中的所有服务视为集群本地,除非在此处明确覆盖。

MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationRequestBody

字段类型描述必填
maxRequestBytesuint32

设置 ext-authz 过滤器将在内存中保存的消息体的最大大小。如果达到 max_request_bytes,并且 allow_partial_message 为 false,则 Envoy 将返回 413(有效负载过大)。否则,请求将使用部分消息发送到提供程序。请注意,此设置将优先于 fail_open 字段,即使将 fail_open 设置为 true,也将返回 413。

allowPartialMessage布尔值

当此字段为 true 时,ext-authz 过滤器将缓冲消息,直到达到 max_request_bytes。授权请求将被调度,并且过滤器不会返回 413 HTTP 错误。“x-envoy-auth-partial-body: false|true” 元数据标头将添加到授权请求消息中,指示主体数据是否为部分数据。

packAsBytes布尔值

如果为 true,则发送到 gRPC 授权请求中的外部授权服务的正文在 raw_body 字段 中设置为原始字节。否则,它将在 body 字段 中填充 UTF-8 字符串。此字段仅适用于 envoy_ext_authz_grpc 提供程序,对 envoy_ext_authz_http 提供程序无效。

MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationHttpProvider

字段类型描述必填
service字符串

必需。指定实现 Envoy ext_authz HTTP 授权服务的服务。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中不足以明确解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“my-ext-authz.foo.svc.cluster.local” 或 “bar/my-ext-authz.example.com”。

portuint32

必需。指定服务的端口。

timeout持续时间

代理等待提供程序响应的最长时间(默认超时:600 秒)。当满足此超时条件时,代理会将与授权服务的通信标记为失败。在这种情况下,发送回客户端的响应将取决于配置的 fail_open 字段。

pathPrefix字符串

为授权请求标头 Path 的值设置前缀。例如,对于路径为“/admin”的原始用户请求,将其设置为“/check”将导致授权检查请求发送到路径为“/check/admin”而不是“/admin”的授权服务。

failOpen布尔值

如果为 true,即使与授权服务的通信失败或授权服务返回 HTTP 5xx 错误,也允许用户请求。默认为 false,并且请求将被拒绝并返回“Forbidden”响应。

statusOnError字符串

设置在授权服务网络错误时返回给客户端的 HTTP 状态。默认状态为“403”(HTTP 禁止)。

includeRequestHeadersInCheckstring[]

应包含在发送到授权服务的授权请求中的客户端请求标头列表。请注意,除了此处指定的标头外,以下标头默认情况下也包含在内

  1. HostMethodPathContent-Length 会自动发送。
  2. Content-Length 将设置为 0,并且请求将没有消息正文。但是,授权请求可以包含缓冲的客户端请求正文(由 include_request_body_in_check 设置控制),因此授权请求的 Content-Length 值反映其有效负载大小。

支持精确匹配、前缀匹配和后缀匹配(类似于 授权策略规则语法,但不存在 presence 匹配)。

  • 精确匹配:“abc” 将匹配值“abc”。
  • 前缀匹配:“abc*” 将匹配值“abc”和“abcd”。
  • 后缀匹配:“*abc” 将匹配值“abc”和“xabc”。
includeAdditionalHeadersInCheckmap<string, string>

应包含在发送到授权服务的授权请求中的一组额外的固定标头。键是标头名称,值是标头值。请注意,客户端请求中具有相同键或在 include_request_headers_in_check 中指定的标头将被覆盖。

includeRequestBodyInCheckEnvoyExternalAuthorizationRequestBody

如果设置,则客户端请求正文将包含在发送到授权服务的授权请求中。

headersToUpstreamOnAllowstring[]

来自授权服务的标头列表,当授权检查结果允许(HTTP 代码 200)时,应将其添加到原始请求中或覆盖原始请求中的标头,并将其转发到上游。如果未指定,则原始请求将不会被修改,并按原样转发到后端。请注意,任何现有标头都将被覆盖。

支持精确匹配、前缀匹配和后缀匹配(类似于 授权策略规则语法,但不存在 presence 匹配)。

  • 精确匹配:“abc” 将匹配值“abc”。
  • 前缀匹配:“abc*” 将匹配值“abc”和“abcd”。
  • 后缀匹配:“*abc” 将匹配值“abc”和“xabc”。
headersToDownstreamOnDenystring[]

来自授权服务的标头列表,当授权检查结果不允许(HTTP 代码不是 200)时,应将其转发到下游。如果未指定,则授权响应标头(除了 Authority (Host))都将包含在下游的响应中。当标头包含在此列表中时,PathStatusContent-LengthWWWAuthenticateLocation 会自动添加。请注意,授权服务的正文始终包含在下游的响应中。

支持精确匹配、前缀匹配和后缀匹配(类似于 授权策略规则语法,但不存在 presence 匹配)。

  • 精确匹配:“abc” 将匹配值“abc”。
  • 前缀匹配:“abc*” 将匹配值“abc”和“abcd”。
  • 后缀匹配:“*abc” 将匹配值“abc”和“xabc”。
headersToDownstreamOnAllowstring[]

来自授权服务的标头列表,当授权检查结果允许(HTTP 代码 200)时,应将其转发到下游。如果未指定,则原始响应将不会被修改,并按原样转发到下游。请注意,任何现有标头都将被覆盖。

支持精确匹配、前缀匹配和后缀匹配(类似于 授权策略规则语法,但不存在 presence 匹配)。

  • 精确匹配:“abc” 将匹配值“abc”。
  • 前缀匹配:“abc*” 将匹配值“abc”和“abcd”。
  • 后缀匹配:“*abc” 将匹配值“abc”和“xabc”。
includeHeadersInCheckstring[]

已弃用。请改用 include_request_headers_in_check。

MeshConfig.ExtensionProvider.EnvoyExternalAuthorizationGrpcProvider

字段类型描述必填
service字符串

必需。指定实现 Envoy ext_authz gRPC 授权服务的服务。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中不足以明确解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“my-ext-authz.foo.svc.cluster.local” 或 “bar/my-ext-authz.example.com”。

portuint32

必需。指定服务的端口。

timeout持续时间

代理等待提供程序响应的最长时间,这是特定请求的超时时间(默认超时:600 秒)。当满足此超时条件时,代理会将与授权服务的通信标记为失败。在这种情况下,发送回客户端的响应将取决于配置的 fail_open 字段。

failOpen布尔值

如果为 true,即使与授权服务的通信失败或授权服务返回 HTTP 5xx 错误,也允许 HTTP 请求或 TCP 连接。默认为 false。对于 HTTP 请求,它将被拒绝并返回 403(HTTP 禁止)。对于 TCP 连接,它将立即关闭。

statusOnError字符串

设置在授权服务网络错误时返回给客户端的 HTTP 状态。默认状态为“403”(HTTP 禁止)。

includeRequestBodyInCheckEnvoyExternalAuthorizationRequestBody

如果设置,则客户端请求正文将包含在发送到授权服务的授权请求中。

MeshConfig.ExtensionProvider.ZipkinTracingProvider

定义 Zipkin 追踪器的配置。

字段类型描述必填
service字符串

必需。指定 Zipkin API 的服务。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中不足以明确解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“zipkin.default.svc.cluster.local” 或 “bar/zipkin.example.com”。

portuint32

必需。指定服务的端口。

maxTagLengthuint32

可选。控制报告的跨度中允许的总路径长度。注意:目前仅控制路径标签的最大长度。

enable64bitTraceId布尔值

可选。Istio 中将使用 128 位跟踪 ID。如果为 true,将导致使用 64 位跟踪 ID。

MeshConfig.ExtensionProvider.LightstepTracingProvider

定义 Lightstep 追踪器的配置。注意:Lightstep 已迁移到基于 OpenTelemetry 的集成。使用此选项时,Istio 1.15+ 将生成与 OpenTelemetry 兼容的配置。

字段类型描述必填
service字符串

必需。指定 Lightstep 收集器的服务。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中不足以明确解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“lightstep.default.svc.cluster.local” 或 “bar/lightstep.example.com”。

portuint32

必需。指定服务的端口。

accessToken字符串

Lightstep 访问令牌。

maxTagLengthuint32

可选。控制报告的跨度中允许的总路径长度。注意:目前仅控制路径标签的最大长度。

MeshConfig.ExtensionProvider.DatadogTracingProvider

定义 Datadog 追踪器的配置。

字段类型描述必填
service字符串

必需。指定 Datadog 代理的服务。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中不足以明确解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“datadog.default.svc.cluster.local” 或 “bar/datadog.example.com”。

portuint32

必需。指定服务的端口。

maxTagLengthuint32

可选。控制报告的跨度中允许的总路径长度。注意:目前仅控制路径标签的最大长度。

MeshConfig.ExtensionProvider.SkyWalkingTracingProvider

定义 SkyWalking 追踪器的配置。

字段类型描述必填
service字符串

**必填。** 指定 SkyWalking 接收器的服务。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中无法唯一解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“skywalking.default.svc.cluster.local” 或 “bar/skywalking.example.com”。

portuint32

必需。指定服务的端口。

accessToken字符串

可选。SkyWalking OAP 访问令牌。

MeshConfig.ExtensionProvider.StackdriverProvider

定义 Stackdriver 的配置。

**警告:** Stackdriver 追踪在后台使用 OpenCensus 配置,因此无法与任何 OpenCensus 提供程序配置一起使用。这是由于 Envoy 中 OpenCensus 驱动程序实现的限制。

字段类型描述必填
maxTagLengthuint32

可选。控制报告的跨度中允许的总路径长度。注意:目前仅控制路径标签的最大长度。

日志记录日志记录

可选。控制 Stackdriver 日志记录行为。

MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider

定义将写入 OpenCensus 后端的 OpenCensus 追踪器的配置。

**警告:** 应谨慎使用 OpenCensusAgentTracingProviders。由于 Envoy 中 OpenCensus 驱动程序实现的限制,在代理生命周期中**无法**更改 OpenCensus 提供程序的配置。这意味着对于任何给定的时间,对于代理或代理组,只能使用一个 OpenCensus 提供程序配置,并且对提供程序配置的任何更改**必须**伴随着所有将使用该配置的代理的重启。

注意:Stackdriver 追踪在后台使用 OpenCensus 配置,因此无法与 OpenCensus 提供程序配置一起使用。

字段类型描述必填
service字符串

**必填。** 指定 OpenCensusAgent 的服务。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中无法唯一解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“ocagent.default.svc.cluster.local” 或 “bar/ocagent.example.com”。

portuint32

必需。指定服务的端口。

上下文TraceContext[]

指定用于分布式追踪的一组上下文传播头。默认值为 ["W3C_TRACE_CONTEXT"]。如果指定多个值,代理将尝试为每个请求读取每个头,并将写入所有头。

maxTagLengthuint32

可选。控制报告的跨度中允许的总路径长度。注意:目前仅控制路径标签的最大长度。

MeshConfig.ExtensionProvider.PrometheusMetricsProvider

MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider

定义用于将 Envoy 基于访问日志写入本地文件(和/或标准流)的配置。

字段类型描述必填
路径字符串

写入访问日志条目的本地文件的路径。这可用于通过 /dev/stderr/dev/stdout 写入流。如果未指定,则默认为 /dev/stdout

日志格式LogFormat

可选。允许覆盖默认的访问日志格式。

MeshConfig.ExtensionProvider.EnvoyHttpGrpcV3LogProvider

定义用于 Envoy 的配置,访问日志服务 集成 HTTP 流量。

字段类型描述必填
service字符串

**必填。** 指定实现 Envoy ALS gRPC 授权服务的服务。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中无法唯一解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“envoy-als.foo.svc.cluster.local” 或 “bar/envoy-als.example.com”。

portuint32

必需。指定服务的端口。

日志名称字符串

可选。访问日志的友好名称。默认为

  • “http_envoy_accesslog”
  • “listener_envoy_accesslog”
filterStateObjectsToLogstring[]

可选。要记录的其他过滤器状态对象。

additionalRequestHeadersToLogstring[]

可选。要记录的其他请求头。

additionalResponseHeadersToLogstring[]

可选。要记录的其他响应头。

additionalResponseTrailersToLogstring[]

可选。要记录的其他响应尾部。

MeshConfig.ExtensionProvider.EnvoyTcpGrpcV3LogProvider

定义用于 Envoy 的配置,访问日志服务 集成 TCP 流量。

字段类型描述必填
service字符串

**必填。** 指定实现 Envoy ALS gRPC 授权服务的服务。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中无法唯一解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“envoy-als.foo.svc.cluster.local” 或 “bar/envoy-als.example.com”。

portuint32

必需。指定服务的端口。

日志名称字符串

可选。访问日志的友好名称。默认为

  • “tcp_envoy_accesslog”
  • “listener_envoy_accesslog”
filterStateObjectsToLogstring[]

可选。要记录的其他过滤器状态对象。

MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider

定义用于 Envoy 的配置,OpenTelemetry (gRPC) 访问日志

字段类型描述必填
service字符串

**必填。** 指定实现 Envoy ALS gRPC 授权服务的服务。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中无法唯一解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“envoy-als.foo.svc.cluster.local” 或 “bar/envoy-als.example.com”。

portuint32

必需。指定服务的端口。

日志名称字符串

可选。访问日志的友好名称。默认为

  • “otel_envoy_accesslog”
日志格式LogFormat

可选。代理访问日志的格式。空值将导致代理使用默认的访问日志格式,遵循 Envoy 访问日志格式。

MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider

定义 OpenTelemetry 追踪后端的配置。需要 Istio 1.16.1 或更高版本。

字段类型描述必填
service字符串

**必填。** 指定将接收 OTLP 追踪的 OpenTelemetry 端点。格式为 [<Namespace>/]<Hostname>。仅当服务注册表中无法唯一解析服务时,才需要指定 <Namespace><Hostname> 是 Kubernetes 服务或 ServiceEntry 定义的服务的完全限定主机名。

示例:“otlp.default.svc.cluster.local” 或 “bar/otlp.example.com”。

portuint32

必需。指定服务的端口。

maxTagLengthuint32

可选。控制报告的跨度中允许的总路径长度。注意:目前仅控制路径标签的最大长度。

HTTPHttpService

可选。指定通过 HTTP 导出 OTLP 追踪的配置。为空时,将通过 gRPC 导出追踪。

以下示例显示如何配置 OpenTelemetry ExtensionProvider 以通过 HTTP 导出。

  1. MeshConfig 中添加/更改 OpenTelemetry 扩展提供程序。
- name: otel-tracing
  opentelemetry:
    port: 443
    service: my.olly-backend.com
    http:
      path: "/api/otlp/traces"
      timeout: 10s
      headers:
      - name: "my-custom-header"
        value: "some value"
  1. 为可观察性后端部署 ServiceEntry
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: my-olly-backend
spec:
  hosts:
  - my.olly-backend.com
  ports:
  - number: 443
    name: https-port
    protocol: HTTPS
  resolution: DNS
  location: MESH_EXTERNAL
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: my-olly-backend
spec:
  host: my.olly-backend.com
  trafficPolicy:
    portLevelSettings:
    - port:
        number: 443
      tls:
        mode: SIMPLE
resourceDetectorsResourceDetectors

可选。指定 资源检测器 供 OpenTelemetry 追踪器使用。当提供多个资源时,它们将根据 OpenTelemetry 资源规范 合并。

以下示例显示如何配置环境资源检测器,它将从环境变量 OTEL_RESOURCE_ATTRIBUTES 读取属性。

- name: otel-tracing
  opentelemetry:
    port: 443
    service: my.olly-backend.com
    resource_detectors:
      environment: {}
dynatraceSamplerDynatraceSampler (oneof)

Dynatrace 自适应流量管理 (ATM) 采样器。

配置示例

- name: otel-tracing
  opentelemetry:
    port: 443
    service: "{your-environment-id}.live.dynatrace.com"
    http:
      path: "/api/v2/otlp/v1/traces"
      timeout: 10s
      headers:
        - name: "Authorization"
          value: "Api-Token dt0c01."
    resource_detectors:
      dynatrace: {}
    dynatrace_sampler:
      tenant: "{your-environment-id}"
      cluster_id: 1234

MeshConfig.ExtensionProvider.HttpService

定义可由扩展提供程序使用的 HTTP 服务的配置。通过 HTTP 进行通信。

字段类型描述必填
路径字符串

**必填。** 指定服务上的路径。

timeout持续时间

可选。指定 HTTP 请求的超时时间。如果未指定,则默认为 3 秒。

headersHttpHeader[]

可选。允许指定将添加到发送的每个 HTTP 请求的自定义 HTTP 头。

MeshConfig.ExtensionProvider.HttpHeader

字段类型描述必填
name字符串

**必填。** HTTP 头名称。

value字符串

**必填。** HTTP 头值。

MeshConfig.ExtensionProvider.ResourceDetectors

字段类型描述必填
环境EnvironmentResourceDetector
dynatraceDynatraceResourceDetector

MeshConfig.ExtensionProvider.StackdriverProvider.Logging

字段类型描述必填
标签map<string, string>

要包含在日志条目中的标签名称和标签表达式的集合。通过覆盖先前提供的值,通过标签名称解决冲突。

示例:labels: path: request.url_path foo: request.headers[‘x-foo’]

MeshConfig.ExtensionProvider.EnvoyFileAccessLogProvider.LogFormat

字段类型描述必填
文本string (oneof)

Envoy 访问日志的文本格式。Envoy 命令操作符 可用于格式中。该 格式字符串文档 提供更多信息。

注意:Istio 将在所有格式上插入换行符('\n')(如果缺少)。

示例:text: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%"

标签Struct (oneof)

Envoy 访问日志的 JSON 结构化格式。Envoy 命令操作符 可用作 Struct 中字段的值。值将根据需要呈现为字符串、数字或布尔值(请参阅:格式字典)。某些命令操作符(例如 FILTER_STATEDYNAMIC_METADATA)支持嵌套 JSON。使用 labels: {} 获取默认的 envoy JSON 日志格式。

示例

labels:
  status: "%RESPONSE_CODE%"
  message: "%LOCAL_REPLY_BODY%"

MeshConfig.ExtensionProvider.EnvoyOpenTelemetryLogProvider.LogFormat

字段类型描述必填
文本字符串

Envoy 访问日志的文本格式。Envoy 命令操作符 可用于格式中。该 格式字符串文档 提供更多信息。别名为 Open Telemetry 中的 body 字段 示例:text: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%"

标签Struct

可选。描述特定事件发生的附加属性。Envoy 访问日志的结构化格式。Envoy 命令操作符 可用作 Struct 中字段的值。值将根据需要呈现为字符串、数字或布尔值(请参阅:格式字典)。某些命令操作符(例如 FILTER_STATEDYNAMIC_METADATA)支持嵌套 JSON。别名为 Open Telemetry 中的 attributes 字段。

示例

labels:
  status: "%RESPONSE_CODE%"
  message: "%LOCAL_REPLY_BODY%"

MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler

字段类型描述必填
租户字符串

**必填。** Dynatrace 客户的租户标识符。

该值可从 Dynatrace 中的 Istio 部署页面获取。

clusterIdint32

**必填。** Dynatrace 平台中集群的标识符。此处的集群是 Dynatrace 特定的概念,与 Istio/Envoy 中的集群概念无关。

该值可从 Dynatrace 中的 Istio 部署页面获取。

rootSpansPerMinuteuint32

可选。当无法从 Dynatrace API 获取自适应值时,要使用的每分钟采样跨度的数量。

  • root_spans_per_minute 未设置时
  • root_spans_per_minute 设置为 0 时
将使用默认值 1000DynatraceApi

可选。Dynatrace HTTP API 用于获取采样配置。

如果未提供,则 Dynatrace Sampler 将重用 OpenTelemetryTracingProvider HTTP 导出器(serviceporthttp)中的配置,包括访问令牌。

MeshConfig.ExtensionProvider.OpenTelemetryTracingProvider.DynatraceSampler.DynatraceApi

字段类型描述必填
service字符串

**必填。** 指定用于获取采样配置的 Dynatrace 环境。格式为 <Hostname>,其中 <Hostname> 是 ServiceEntry 中定义的完全限定 Dynatrace 环境主机名。

示例:“{your-environment-id}.live.dynatrace.com”。

portuint32

必需。指定服务的端口。

HTTPHttpService

**必填。** 指定采样配置 URI。

MeshConfig.ExtensionProvider.ResourceDetectors.EnvironmentResourceDetector

OpenTelemetry 环境资源检测器。资源检测器从环境变量 OTEL_RESOURCE_ATTRIBUTES 读取属性并将其添加到 OpenTelemetry 资源。

请参阅:资源规范

MeshConfig.ExtensionProvider.ResourceDetectors.DynatraceResourceDetector

Dynatrace 资源检测器。资源检测器从 Dynatrace 增强文件读取并将主机/进程相关属性添加到 OpenTelemetry 资源。

请参阅:使用 Dynatrace 特定维度丰富摄取的数据

跟踪

Tracing 定义了 Envoy 实例执行的跟踪的配置。

字段类型描述必填
zipkinZipkin (oneof)

使用 Zipkin 追踪器。

lightstepLightstep (oneof)

使用 Lightstep 追踪器。注意:对于 Istio 1.15+,此配置选项将导致使用基于 OpenTelemetry 的 Lightstep 集成。

datadogDatadog (oneof)

使用 Datadog 追踪器。

stackdriverStackdriver (oneof)

使用 Stackdriver 追踪器。

openCensusAgentOpenCensusAgent (oneof)

使用导出到 OpenCensus 代理的 OpenCensus 追踪器。

采样double

如果客户端未请求或未强制执行,则将随机选择用于跟踪生成的请求的百分比(0.0 - 100.0)。默认为 1.0。

tlsSettingsClientTLSSettings

使用 tls_settings 指定要使用的 TLS 模式。如果远程跟踪服务使用 Istio 双向 TLS 并与 Pilot 共享根 CA,请将 TLS 模式指定为 ISTIO_MUTUAL

拓扑

拓扑结构描述了代理相对于中间可信代理和客户端的相对位置配置。这些设置控制网关代理如何从传入流量中检索客户端属性,并将其传播到集群中的上游服务。

字段类型描述必填
numTrustedProxiesuint32

部署在 Istio 网关代理前面的可信代理的数量。当此选项设置为大于零的值 N 时,则假定可信客户端地址是从传入请求的 X-Forwarded-For (XFF) 标头最右端起的第 N 个地址。如果缺少 X-Forwarded-For (XFF) 标头或其地址少于 N 个,则网关代理将回退到使用直接下游连接的源地址作为可信客户端地址。请注意,网关代理会在转发到集群中的上游服务之前,将下游连接的源地址追加到 X-Forwarded-For (XFF) 地址,并将 X-Envoy-External-Address 标头设置为可信客户端地址。num_trusted_proxies 的默认值为 0。有关更多详细信息,请参阅 Envoy XFF 标头处理。

forwardClientCertDetails转发客户端证书详细信息

配置网关代理如何处理传入请求中的 x-forwarded-client-cert (XFCC) 标头。

proxyProtocolProxyProtocolConfiguration

为网关上的下游连接启用 PROXY 协议

私钥提供程序

PrivateKeyProvider 定义网关和 sidecar 的私钥配置。这可以在网格范围内或每个工作负载的基础上进行配置。

字段类型描述必填
cryptombCryptoMb (oneof)

使用 CryptoMb 私钥提供程序

qatQAT (oneof)

使用 QAT 私钥提供程序

代理配置

ProxyConfig 定义各个 Envoy 实例的变量。这可以在每个工作负载的基础上以及通过网格范围的默认值进行配置。要设置网格范围的默认值,请配置 meshConfigdefaultConfig 部分。例如

meshConfig:
  defaultConfig:
    discoveryAddress: istiod:15012

这也可以通过配置 pod 上的 proxy.istio.io/config 注解在每个工作负载的基础上进行配置。例如

annotations:
  proxy.istio.io/config: |
    discoveryAddress: istiod:15012

如果两者都已配置,则这两个配置将按字段语义合并;注解中设置的字段将完全替换来自网格配置默认值的字段。这与 protobuf 提供的深度合并不同。例如,"tracing": { "sampling": 5 } 将完全覆盖配置跟踪提供程序的设置,例如 "tracing": { "zipkin": { "address": "..." } }

注意:ProxyConfig 中的字段不会动态配置;更改需要重新启动工作负载才能生效。

字段类型描述必填
configPath字符串

生成配置文件目录的路径。代理代理生成实际的配置并将其存储在此目录中。

binaryPath字符串

代理二进制文件的路径

serviceClusterstring (oneof)

服务集群定义了所有 Envoy 实例共享的 service_cluster 的名称。此设置对应于 Envoy 中的 --service-cluster 标志。在典型的 Envoy 部署中,service-cluster 标志用于标识调用方,用于基于源的路由场景。

由于 Istio 不会为每个 Envoy 实例分配本地 service/service 版本,因此所有实例的名称都相同。但是,调用方的身份(例如,IP 地址)在启动 Envoy 时会编码在 --service-node 标志中。当 RDS 服务接收来自 Envoy 的 API 调用时,它会使用 service-node 标志的值来计算相对于位于该 IP 地址的服务实例的路由。

tracingServiceNameTracingServiceName (oneof)

Envoy 代理用于为跟踪跨度中的服务名称分配值。

drainDuration持续时间

Envoy 在热重启期间耗尽连接的时间(以秒为单位)。必须 >=1s(例如,1s/1m/1h)默认耗尽持续时间为 45s

discoveryAddress字符串

公开使用 mTLS 连接的 xDS 的发现服务的地址。注入配置可能会覆盖此值。

statsdUdpAddress字符串

statsd UDP 侦听器的 IP 地址和端口(例如 10.75.241.127:9125)。

proxyAdminPortint32

Envoy 应侦听管理命令的端口。默认端口为 15000

controlPlaneAuthPolicy身份验证策略

AuthenticationPolicy 定义代理连接到控制平面时如何进行身份验证。默认设置为 MUTUAL_TLS

customConfigFile字符串

自定义代理配置的文件路径,目前由 Mixer 和 Pilot 前面的代理使用。

statNameLengthint32

Envoy 指标中名称字段的最大长度。名称字段的长度由服务中名称字段的长度以及构成服务特定版本的标签集决定。默认值为 189 个字符。Envoy 的内部指标占用 67 个字符,每个指标总共 256 个字符的名称。如果发现 Envoy 的指标被截断,请增加此字段的值。

concurrencyInt32Value

要运行的工作线程数。如果未设置(建议),则将根据 CPU 请求/限制自动确定。如果设置为 0,则将使用机器上的所有核心,忽略 CPU 请求或限制。如果也设置了 CPU 限制,这可能会导致严重性能问题。

proxyBootstrapTemplatePath字符串

代理引导模板文件的路径

interceptionModeInboundInterceptionMode

用于将入站流量重定向到 Envoy 的模式。

tracing跟踪

代理要使用的跟踪配置。

envoyAccessLogService远程服务

应将 Envoy 的访问日志发送到的服务的地址(例如 accesslog-service:15000)。有关 Envoy 的 gRPC 访问日志服务 API 的详细信息,请参阅 访问日志服务

envoyMetricsService远程服务

Envoy 指标服务实现的地址(例如 metrics-service:15000)。有关 Envoy 的指标服务 API 的详细信息,请参阅 指标服务

proxyMetadatamap<string, string>

代理的其他环境变量。以 ISTIO_META_ 开头的名称将包含在生成的引导程序中并发送到 XDS 服务器。

runtimeValuesmap<string, string>

Envoy 运行时配置,在引导期间设置。这允许设置实验性、不安全、不受支持和已弃用的功能,应谨慎使用。

statusPortint32

代理应侦听管理命令(如就绪探测)的端口。默认设置为端口 15020

extraStatTagsstring[]

要从代理内 Istio 遥测中提取的其他标签列表。可以通过配置遥测扩展来添加这些额外的标签。每个额外的标签都需要存在于此列表中。遥测扩展发出的额外标签必须在此处列出,以便可以对其进行处理并作为 Prometheus 指标公开。已弃用:istio.stats 现在是本机过滤器,不再需要此字段。

gatewayTopology拓扑

Topology 封装了描述代理位置的配置,即位于可信代理(或 N 个)后面或直接暴露于互联网。此配置仅影响网关,并应用于集群中的所有网关,除非通过网关工作负载的注释进行覆盖。

terminationDrainDuration持续时间

允许连接在代理关闭时完成的时间量。在收到 SIGTERMSIGINT 后,istio-agent 会告诉活动 Envoy 开始优雅地排水,阻止任何新连接并允许现有连接完成。然后休眠 termination_drain_duration,然后终止任何剩余的活动 Envoy 进程。如果未设置,将应用默认值 5s

meshId字符串

服务网格的唯一标识符。所有在同一服务网格中运行的控制平面都应指定相同的网格 ID。网格 ID 用于标记遥测报告,用于将来自多个网格的遥测混合在一起的情况。

readinessProbeReadinessProbe

VM 健康检查就绪探测。此健康检查配置在模式和逻辑上都完全镜像 Kubernetes 就绪探测配置。一次只能设置 3 种健康检查方法中的一种。

proxyStatsMatcherProxyStatsMatcher

代理统计匹配器定义了报告自定义 Envoy 统计信息的配置。为了减少 Envoy 统计信息系统带来的内存和 CPU 开销,Istio 代理默认情况下仅创建和公开 Envoy 统计信息的一个子集。此选项用于控制使用前缀、后缀和正则表达式匹配统计信息名称来创建其他 Envoy 统计信息。这替换了统计信息包含注释(sidecar.istio.io/statsInclusionPrefixessidecar.istio.io/statsInclusionRegexpssidecar.istio.io/statsInclusionSuffixes)。例如,要启用断路器、请求重试、上游连接和请求超时的统计信息,您可以将统计信息匹配器指定如下

proxyStatsMatcher:
  inclusionRegexps:
    - .*outlier_detection.*
    - .*upstream_rq_retry.*
    - .*upstream_cx_.*
  inclusionSuffixes:
    - upstream_rq_timeout

注意,包含更多 Envoy 统计信息可能会显着增加 Prometheus 收集的时间序列数量。需要谨慎处理 Prometheus 资源配置和配置以减少基数。

holdApplicationUntilProxyStartsBoolValue

启用/禁用 holdApplicationUntilProxyStarts 行为的布尔标志。此功能添加了挂钩以延迟应用程序启动,直到 pod 代理准备就绪以接受流量,从而减轻一些启动竞争条件。默认值为“false”。

caCertificatesPemstring[]

工作负载到工作负载通信的额外根证书的 PEM 数据。这包括 MeshConfig 中定义的证书以及 Istiod 用作 CA 的任何其他证书。插件证书(“cacerts”密钥)、自签名证书(“istio-ca-secret”密钥)由 Istiod 自动添加。

imageProxyImage

指定代理映像的详细信息。

privateKeyProvider私钥提供程序

指定网关和 sidecar 代理的私钥提供程序配置的详细信息。

proxyHeadersProxyHeaders

定义要为 HTTP 请求/响应添加/修改的标头集。

要启用可选标头,只需设置字段即可。如果不需要特定配置,则空对象 ({}) 将启用它。注意:目前所有标头默认情况下都已启用。

以下显示了自定义 server 标头和禁用 X-Envoy-Attempt-Count 标头的示例

proxyHeaders:
  server:
    value: "my-custom-server"
  requestId: {} // Explicitly enable Request IDs. As this is the default, this has no effect.
  attemptCount:
    disabled: true

某些标头默认情况下已启用,需要显式禁用。请参阅以下禁用所有默认启用标头的示例

proxyHeaders:
  forwardedClientCert: SANITIZE
  server:
    disabled: true
  requestId:
    disabled: true
  attemptCount:
    disabled: true
  envoyDebugHeaders:
    disabled: true
  metadataExchangeHeaders:
    mode: IN_MESH
zipkinAddress字符串

Zipkin 服务的地址(例如 zipkin:9411)。已弃用:改用 tracing

远程服务

字段类型描述必填
address字符串

用于各种目的(访问日志接收器、指标接收器等)的远程服务的地址。可以是 IP 地址或完全限定的 DNS 名称。

tlsSettingsClientTLSSettings

使用 tls_settings 指定要使用的 TLS 模式。如果远程服务使用 Istio 双向 TLS 并与 Pilot 共享根 CA,请将 TLS 模式指定为 ISTIO_MUTUAL

tcpKeepaliveTcpKeepalive

如果设置,则在套接字上设置 SO_KEEPALIVE 以启用 TCP Keepalives。

Tracing.Zipkin

Zipkin 定义了 Zipkin 跟踪器的配置。

字段类型描述必填
address字符串

Zipkin 服务的地址(例如 zipkin:9411)。

Tracing.Datadog

Datadog 定义了 Datadog 追踪器的配置。

字段类型描述必填
address字符串

Datadog Agent 的地址。

Tracing.Stackdriver

Stackdriver 定义了 Stackdriver 追踪器的配置。有关详细信息,请参阅 Envoy 的 OpenCensus 追踪配置OpenCensus 追踪配置

字段类型描述必填

Tracing.OpenCensusAgent

OpenCensusAgent 定义了 OpenCensus 追踪器的配置,该追踪器写入 OpenCensus agent 后端。有关详细信息,请参阅 Envoy 的 OpenCensus 追踪配置OpenCensus 追踪配置

字段类型描述必填
address字符串

OpenCensus agent 的 gRPC 地址(例如 dns://authority/host:port 或 unix:path)。有关详细信息,请参阅 gRPC 命名文档

上下文TraceContext[]

指定用于分布式追踪的一组上下文传播头。默认值为 ["W3C_TRACE_CONTEXT"]。如果指定多个值,代理将尝试为每个请求读取每个头,并将写入所有头。

Topology.ProxyProtocolConfiguration

PROXY 协议配置。

PrivateKeyProvider.CryptoMb

CryptoMb 私钥提供程序配置

字段类型描述必填
轮询延迟持续时间

等待多长时间才能处理每个线程的处理队列。如果处理队列已满(收到八个签名或解密请求),则会立即处理。但是,如果在延迟过期之前队列未填满,则会处理队列中已有的请求,即使队列未填满。实际上,此值控制着延迟和吞吐量之间的平衡。持续时间需要设置为大于或等于 1 毫秒的值。

回退BoolValue

如果私钥提供程序不可用(例如,所需的硬件功能不存在),则当回退为 true 时,Envoy 将回退到 BoringSSL 默认实现。默认值为 false。

PrivateKeyProvider.QAT

QAT(QuickAssist 技术)私钥提供程序配置

字段类型描述必填
轮询延迟持续时间

在将请求提交到硬件加速器后,等待多长时间才能轮询硬件加速器。使用较小的值会导致硬件更快地给出答案,但会导致更多的轮询循环旋转,从而可能导致更高的 CPU 使用率。持续时间需要设置为大于或等于 1 毫秒的值。

回退BoolValue

如果私钥提供程序不可用(例如,所需的硬件功能不存在),则当回退为 true 时,Envoy 将回退到 BoringSSL 默认实现。默认值为 false。

ProxyConfig.ProxyStatsMatcher

用于统计信息创建的代理统计信息名称匹配器。请注意,这除了 Istio 默认生成的最小 Envoy 统计信息之外。

字段类型描述必填
包含前缀string[]

用于包含的代理统计信息名称前缀匹配器。

包含后缀string[]

用于包含的代理统计信息名称后缀匹配器。

包含正则表达式string[]

用于包含的代理统计信息名称正则表达式匹配器。

ProxyConfig.ProxyHeaders

字段类型描述必填
转发客户端证书转发客户端证书详细信息

控制入站 sidecar 请求的 X-Forwarded-Client-Cert 标头。要在网关上设置此项,请使用 Topology 设置。要禁用此标头,请配置 SANITIZE(始终删除标头,如果存在)或 FORWARD_ONLY(按原样保留标头)。默认情况下,将使用 APPEND_FORWARD

请求 IDRequestId

控制 X-Request-Id 标头。如果启用,则如果尚未设置请求 ID,则会为每个请求生成一个请求 ID。这适用于所有类型的流量(入站、出站和网关)。如果禁用,则不会为请求生成任何请求 ID。如果它已经存在,则会保留它。警告:请求 ID 是网格跟踪和日志记录的关键组件,因此不建议禁用此功能。如果未配置,则默认情况下启用此标头。

服务器Server

控制 server 标头。如果启用,则在入站流量(包括网关)的响应标头中设置 Server: istio-envoy 标头。如果禁用,则不会修改 Server 标头。如果它已经存在,则会保留它。

尝试次数AttemptCount

控制 X-Envoy-Attempt-Count 标头。如果启用,则此标头将在配置了重试的出站请求标头(包括网关)中添加。如果禁用,则不会设置此标头。如果它已经存在,则会保留它。如果未配置,则默认情况下启用此标头。

Envoy 调试标头EnvoyDebugHeaders

控制各种 X-Envoy-* 标头,例如 X-Envoy-OverloadedX-Envoy-Upstream-Service-Time。如果启用,则会包含这些标头。如果禁用,则不会设置这些标头。如果它们已经存在,则会保留它们。有关更多详细信息,请参阅 Envoy 文档。如果未配置,则默认情况下启用这些标头。

元数据交换标头MetadataExchangeHeaders

控制 Istio 元数据交换标头 X-Envoy-Peer-MetadataX-Envoy-Peer-Metadata-Id。默认情况下,行为未指定。如果为 IN_MESH,则这些标头不会附加到从 sidecar 到非网格服务getOutbound请求。

ProxyConfig.ProxyHeaders.Server

字段类型描述必填
禁用BoolValue
value字符串

如果设置了此值,并且启用了服务器标头,则此值将设置为服务器标头。默认情况下,将使用 istio-envoy

ProxyConfig.ProxyHeaders.RequestId

字段类型描述必填
禁用BoolValue

ProxyConfig.ProxyHeaders.AttemptCount

字段类型描述必填
禁用BoolValue

ProxyConfig.ProxyHeaders.EnvoyDebugHeaders

字段类型描述必填
禁用BoolValue

ProxyConfig.ProxyHeaders.MetadataExchangeHeaders

字段类型描述必填
mode元数据交换模式

网络

网络提供有关可路由 L3 网络中端点的信息。单个可路由 L3 网络可以拥有一个或多个服务注册表。请注意,网络与端点的本地性无关。端点本地性将从服务注册表中获取。

字段类型描述必填
端点NetworkEndpoints[]

网络中的端点列表(通过组成服务注册表或从 CIDR 范围获取)。网络中的所有端点都可以直接相互访问。

网关IstioNetworkGateway[]

与网络关联的网关集。

网格网络

MeshNetworks(配置映射)提供有关网格内网络集以及如何路由到每个网络中的端点的信息。例如

MeshNetworks(文件/配置映射)

networks:
  network1:
    endpoints:
    - fromRegistry: registry1 #must match kubeconfig name in Kubernetes secret
    - fromCidr: 192.168.100.0/22 #a VM network for example
    gateways:
    - registryServiceName: istio-ingressgateway.istio-system.svc.cluster.local
      port: 15443
      locality: us-east-1a
    - address: 192.168.100.1
      port: 15443
      locality: us-east-1a
字段类型描述必填
网络map<string, Network>

此网格内的网络集。每个网络都应具有唯一的名称以及有关如何推断网络中的端点以及与网络关联的网关的信息。

Network.NetworkEndpoints

NetworkEndpoints 描述了如何推断与端点关联的网络。将根据以下规则将端点分配给网络

  1. 隐式:如果注册表明确提供了有关端点所属网络的信息。在某些情况下,可以通过将 ISTIO_META_NETWORK 环境变量添加到 sidecar 来指示与端点关联的网络。

  2. 显式

    a. 通过将注册表名称与网格配置中的“fromRegistry”之一进行匹配。“from_registry”只能分配给单个网络。

    b. 通过将 IP 与网格配置网络中的一个 CIDR 范围进行匹配。CIDR 范围不得重叠,并且必须分配给单个网络。

如果两者都存在,则 (2) 将覆盖 (1)。

字段类型描述必填
fromCidrstring (oneof)

此网络中端点集的 CIDR 范围。来自不同网络的端点的 CIDR 范围不得重叠。

fromRegistrystring (oneof)

将指定注册表中的所有端点添加到此网络中。注册表的名称应与用于配置注册表的密钥(Kubernetes 多集群)中的 kubeconfig 文件名或 MCP 服务器提供的文件名相对应。

Network.IstioNetworkGateway

与该网络关联的网关。来自远程网络的流量将到达指定的网关:端口。所有传入流量都必须使用 mTLS。

字段类型描述必填
注册表服务名称string (oneof)

网关服务的完全限定域名。Pilot 将从网络中的服务注册表中查找服务,并从服务注册表中获取网关的端点 IP。请注意,虽然服务名称是完全限定域名,但它无需在编排平台外部解析以供注册表使用。例如,这可能是 istio-ingressgateway.istio-system.svc.cluster.local。

addressstring (oneof)

与网关关联的 IP 地址或外部可解析的 DNS 地址。

portuint32

与网关关联的端口。

本地性字符串

与显式指定的网关(即 ip)关联的本地性。

MeshConfig.OutboundTrafficPolicy.Mode

名称描述
REGISTRY_ONLY

REGISTRY_ONLY 模式下,将丢弃未知的出站流量。流量目标必须通过 ServiceEntry 配置显式声明到服务注册表中。

注意:Istio 不提供出站流量安全策略。此选项不会充当任何一种或任何形式的出站防火墙。相反,此选项主要存在是为了为用户提供一种通过显式失败来检测缺少的 ServiceEntry 配置的方法。

ALLOW_ANY

ALLOW_ANY 模式下,将允许任何到未知目标的流量。但是,未知目标流量的功能有限,例如可观察性降低。此模式允许没有通过 ServiceEntry 配置注册所有可能的出口目标的用户仍然连接到任意目标。

MeshConfig.InboundTrafficPolicy.Mode

名称描述
PASSTHROUGH

入站流量将通过到 Pod IP 上侦听的目标。这与未启用 Istio 的行为匹配,允许代理透明。

LOCALHOST

入站流量将发送到 localhost 上侦听的目标。

MeshConfig.ExtensionProvider.OpenCensusAgentTracingProvider.TraceContext

TraceContext 选择用于分布式跟踪的上下文传播标头。

名称描述
W3C_TRACE_CONTEXT

使用 W3C Trace Context 传播,使用 traceparent HTTP 标头。有关详细信息,请参阅 Trace Context 文档

GRPC_BIN

使用 gRPC 二进制上下文传播,使用 grpc-trace-bin http 标头。

CLOUD_TRACE_CONTEXT

使用 Cloud Trace 上下文传播,使用 X-Cloud-Trace-Context http 标头。

B3

使用多标头 B3 上下文传播,使用 X-B3-TraceIdX-B3-SpanIdX-B3-Sampled HTTP 标头。有关详细信息,请参阅 B3 标头传播自述文件

MeshConfig.ProxyPathNormalization.NormalizationType

名称描述
DEFAULT

应用默认规范化。目前,这是 BASE。

NONE

不进行规范化,路径按原样使用。

BASE

根据 RFC 3986 进行规范化。对于 Envoy 代理,这是 normalize_path 选项。例如,/a/../b 规范化为 /b

MERGE_SLASHES

除了 BASE 规范化之外,还合并连续的斜杠。例如,/a//b 规范化为 a/b

DECODE_AND_MERGE_SLASHES

除了 MERGE_SLASHES 中的规范化之外,在合并之前还会对斜杠字符进行 UTF-8 解码(不区分大小写)。这意味着请求路径中的 %2F%2f%5C%5c 序列将被重写为 /\。例如,/a%2f/b 规范化为 a/b

MeshConfig.TLSConfig.TLSProtocol

TLS 协议版本。

名称描述
TLS_AUTO

自动选择最佳 TLS 版本。

TLSV1_2

TLS 版本 1.2

TLSV1_3

TLS 版本 1.3

MeshConfig.IngressControllerMode

名称描述
UNSPECIFIED

未指定的 Istio 入口控制器。

OFF

禁用 Istio 入口控制器。

DEFAULT

Istio 入口控制器将对不包含任何注释或其注释与前面描述的 ingress_class 参数中指定的值匹配的入口资源进行操作。如果 Istio 入口控制器将成为整个 Kubernetes 集群的默认入口控制器,请使用此模式。

STRICT

Istio 入口控制器仅会作用于其注释与前面描述的 ingress_class 参数中指定的值匹配的 Ingress 资源。如果 Istio 入口控制器将作为辅助入口控制器(例如,除了云提供的入口控制器之外),请使用此模式。

MeshConfig.AccessLogEncoding

名称描述
文本

代理访问日志的文本编码

JSON

代理访问日志的 JSON 编码

MeshConfig.H2UpgradePolicy

将 http1.1 连接升级到 http2 的默认策略。

名称描述
DO_NOT_UPGRADE

不将连接升级到 http2。

UPGRADE

将连接升级到 http2。

资源

资源描述配置的来源

名称描述
SERVICE_REGISTRY

设置为仅接收平台生成的 ServiceEntry。这些自动生成的 ServiceEntry 是由特定平台(例如 k8)生成的 Service 和 Endpoint 的组合。

Tracing.OpenCensusAgent.TraceContext

TraceContext 选择用于分布式跟踪的上下文传播标头。

名称描述
W3C_TRACE_CONTEXT

使用 W3C Trace Context 传播,使用 traceparent HTTP 标头。有关详细信息,请参阅 Trace Context 文档

GRPC_BIN

使用 gRPC 二进制上下文传播,使用 grpc-trace-bin http 标头。

CLOUD_TRACE_CONTEXT

使用 Cloud Trace 上下文传播,使用 X-Cloud-Trace-Context http 标头。

B3

使用多标头 B3 上下文传播,使用 X-B3-TraceIdX-B3-SpanIdX-B3-Sampled HTTP 标头。有关详细信息,请参阅 B3 标头传播自述文件

ProxyConfig.ProxyHeaders.MetadataExchangeMode

名称描述
UNDEFINED

元数据交换头的现有 Istio 行为保持不变。

IN_MESH

仅为被视为网内服务的服务附加 Istio 元数据交换头。如果流量使用 Istio 双向 TLS 保护,则该流量被视为网内流量。这意味着 `MESH_EXTERNAL` 服务、未匹配的直通流量以及对未启用 Istio 的工作负载的请求将被视为网外流量。

ProxyConfig.TracingServiceName

允许为 Envoy 的 `service_cluster` 值指定各种 Istio 支持的命名方案。`service_cluster` 值主要由 Envoy 用于为跟踪跨度提供服务名称。

名称描述
APP_LABEL_AND_NAMESPACE

默认方案。使用 `app` 标签和工作负载命名空间构建集群名称。如果不存在 `app` 标签,则使用 `istio-proxy`。

CANONICAL_NAME_ONLY

使用工作负载的规范名称(*不包括命名空间*)。

CANONICAL_NAME_AND_NAMESPACE

使用工作负载的规范名称和命名空间。

ProxyConfig.InboundInterceptionMode

用于将入站流量重定向到 Envoy 的模式。此设置对出站流量没有影响:对于出站连接,始终使用 iptables `REDIRECT`。

名称描述
REDIRECT

REDIRECT 模式使用 iptables `REDIRECT` 进行 `NAT` 并重定向到 Envoy。此模式在重定向期间会丢失源 IP 地址。这是默认的重定向模式。

TPROXY

TPROXY 模式使用 iptables `TPROXY` 重定向到 Envoy。此模式保留源和目标 IP 地址以及端口,以便可以将其用于高级过滤和操作。此模式还会将 sidecar 配置为使用 `CAP_NET_ADMIN` 功能,这是使用 `TPROXY` 所必需的。

NONE

NONE 模式根本不配置重定向到 Envoy。这是一种高级配置,通常需要更改用户应用程序。

身份验证策略

AuthenticationPolicy 定义代理连接到控制平面时如何进行身份验证。它可以针对两个不同的范围设置,即网格范围或使用 ProxyConfig 注释在每个 Pod 基础上设置。网格策略不能为 INHERIT。

名称描述
NONE

不加密代理到控制平面的流量。

MUTUAL_TLS

代理到控制平面的流量被封装到双向 TLS 连接中。

INHERIT

使用父范围定义的策略。不应用于网格策略。

转发客户端证书详细信息

ForwardClientCertDetails 控制网关代理如何处理 x-forwarded-client-cert (XFCC) 标头。有关详细信息,请参阅 Envoy XFCC 标头处理。

名称描述
UNDEFINED

字段未设置

SANITIZE

不将 XFCC 标头发送到下一跳。这是默认值。

FORWARD_ONLY

当客户端连接为 mTLS(双向 TLS)时,转发请求中的 XFCC 标头。

APPEND_FORWARD

当客户端连接为 mTLS 时,将客户端证书信息附加到请求的 XFCC 标头并转发。

SANITIZE_SET

当客户端连接为 mTLS 时,使用客户端证书信息重置 XFCC 标头并将其发送到下一跳。

ALWAYS_FORWARD_ONLY

始终转发请求中的 XFCC 标头,无论客户端连接是否为 mTLS。

这些信息是否有用?
您对改进有什么建议?

感谢您的反馈!