envoy 中文参考文档
  • 首页
  • 简介
    • Envoy是什么
    • 架构介绍
      • 术语
      • 线程模型
      • 监听器
      • L3/L4网络过滤器
      • HTTP连接管理
      • HTTP过滤器
      • HTTP路由
      • gRPC
      • WebSocket支持
      • 集群管理
      • 服务发现
      • 健康检查
      • 连接池
      • 负载均衡
      • 异常检测
      • 熔断
      • 全局限速
      • TLS
      • 统计
      • 运行时配置
      • 跟踪
      • TCP代理
      • 访问日志
      • MongoDB
      • DynamoDB
      • Redis
      • 热重启
      • 动态配置
      • 初始化
      • 逐出
      • 脚本
    • 部署
    • 业界对比
    • 获得帮助
    • 历史版本
  • 编译安装
    • 编译
    • 参考配置
    • 演示沙箱
      • 前端代理
      • Zipkin跟踪
      • Jaeger跟踪
      • gRPC桥接
      • 构建Envoy Docker镜像
    • 工具
  • 配置参考
    • V1 API 概述
    • V2 API 概述
    • 监听器
    • 网络过滤器
      • TLS客户端身份认证
      • Echo
      • Mongo代理
      • 速率限制
      • Redis代理
      • TCP代理
    • HTTP连接管理器
      • 路由匹配
      • 流量转移/分流
      • HTTP头部操作
      • HTTP头部清理
      • 统计
      • 运行时设置
      • 路由发现服务
    • HTTP过滤器
      • 缓存
      • CORS过滤器
      • 故障注入
      • DynamoDB
      • gRPC HTTP/1.1 桥接
      • gRPC-JSON 转码过滤器
      • gRPC-Web 过滤器
      • 健康检查
      • 速率限制
      • 路由
      • Lua
    • 集群管理
      • 统计
      • 运行时设置
      • 集群发现服务
      • 健康检查
      • 熔断
    • 访问日志
    • 限速服务
    • 运行时配置
    • 路由表检查工具
  • 运维管理
    • 命令行选项
    • 热重启
    • 管理接口
    • 统计概述
    • 运行时配置
    • 文件系统
  • 自定义扩展示例
  • V1 API参考
    • 监听器
    • 网络过滤器
      • TLS客户端身份认证
      • Echo
      • HTTP连接管理
      • Mongo代理
      • 速率限制
      • Redis代理
      • TCP代理
    • HTTP路由配置
      • 虚拟主机
      • 路由
      • 虚拟集群
      • 速率限制配置
      • 路由发现服务
    • HTTP过滤器
      • 缓存
      • CORS过滤器
      • DynamoDB
      • 故障注入
      • gRPC HTTP/1.1 桥接
      • gRPC-JSON 转码过滤器
      • gRPC-Web 过滤器
      • 健康检查
      • Lua
      • 速率限制
      • 路由
    • 集群管理
      • 集群
        • 健康检查
        • 熔断
        • TLS上下文
        • 异常值检测
        • HASH环负载均衡配置
      • 异常检测
      • 集群发现服务
      • 服务发现服务
    • 访问日志
    • 管理接口
    • 限速服务
    • 运行时配置
    • 跟踪
  • V2 API参考
    • 启动引导
    • 监听&监听发现
    • 集群&集群发现
    • 服务发现
    • 健康检查
    • HTTP路由管理&发现
    • TLS配置
    • 通用的类型
    • 网络地址
    • 协议选项
    • 发现API
    • 限速组件
    • 过滤器
      • 网络过滤器
        • TLS客户端身份认证
        • HTTP连接管理
        • Mongo代理
        • 速率限制
        • Redis代理
        • TCP代理
      • HTTP过滤器
        • 缓存
        • 故障注入
        • 健康检查
        • Lua
        • 速率限制
        • 路由
        • gRPC-JSON转码器
      • 常见访问日志类型
      • 常见故障注入类型
  • FAQ
    • Envoy有多快?
    • 我在哪里获得二进制文件?
    • 我如何设置SNI?
    • 如何设置区域感知路由?
    • 我如何设置Zipkin跟踪?
Powered by GitBook
On this page
  • 启动引导
  • Bootstrap
  • Bootstrap.StaticResources
  • Bootstrap.DynamicResources
  • Bootstrap.DynamicResources.DeprecatedV1
  • LightstepConfig
  • ZipkinConfig
  • Tracing
  • Tracing.Http
  • Admin
  • ClusterManager
  • ClusterManager.OutlierDetection
  • StatsdSink
  • StatsSink
  • TagSpecifier
  • StatsConfig
  • Watchdog
  • Runtime
  • RateLimitServiceConfig
  • 返回

Was this helpful?

  1. V2 API参考

启动引导

PreviousV2 API参考Next监听&监听发现

Last updated 5 years ago

Was this helpful?

启动引导

该协议通过命令行-c参数提供,并作为Envoy v2根配置。有关更多详细信息,请参阅v2。

Bootstrap

{
  "node": "{...}",
  "static_resources": "{...}",
  "dynamic_resources": "{...}",
  "cluster_manager": "{...}",
  "flags_path": "...",
  "stats_sinks": [],
  "stats_config": "{...}",
  "stats_flush_interval": "{...}",
  "watchdog": "{...}",
  "tracing": "{...}",
  "rate_limit_service": "{...}",
  "runtime": "{...}",
  "admin": "{...}"
}

Bootstrap.StaticResources

{
  "listeners": [],
  "clusters": []
}

Bootstrap.DynamicResources

{
  "lds_config": "{...}",
  "cds_config": "{...}",
  "ads_config": "{...}",
  "deprecated_v1": "{...}"
}

Bootstrap.DynamicResources.DeprecatedV1

{
  "sds_config": "{...}"
}
  • sds_config

LightstepConfig

Configuration for the LightStep tracer.

{
  "collector_cluster": "...",
  "access_token_file": "..."
}

ZipkinConfig

{
  "collector_cluster": "...",
  "collector_endpoint": "..."
}

Tracing

{
  "http": "{...}"
}
  • http

Tracing.Http

{
  "name": "...",
  "config": "{...}"
}

Admin

{
  "access_log_path": "...",
  "profile_path": "...",
  "address": "{...}"
}

ClusterManager

Cluster manager architecture overview.

{
  "local_cluster_name": "...",
  "outlier_detection": "{...}",
  "upstream_bind_config": "{...}",
  "load_stats_config": "{...}"
}

ClusterManager.OutlierDetection

{
  "event_log_path": "..."
}
  • event_log_path

StatsdSink

统计配置,用于内置envoy.statsd接收器的proto类型定义。

{
  "address": "{...}",
  "tcp_cluster_name": "..."
}

StatsSink

可插拔的统计接收器配置

{
  "name": "...",
  "config": "{...}"
}

TagSpecifier

从指定标签抽取和剥离的标签名称,并将其作为所有统计信息的指定标签使用。只有当名称的任何部分与有一个或多个捕获组正则表达式匹配时才会发生这种情况。

{
  "tag_name": "...",
  "regex": "..."
}
  • 注意:如果任何默认标签被指定两次,配置将被视为无效。

  • 例如,一个统计名称为cluster.foo_cluster.upstream_rq_timeout和

    {
    "tag_name": "envoy.cluster_name",
    "regex": "^cluster\.((.+?)\.)"
    }

    请注意,正则表达式将删除foo_cluster. 使标签名称为 cluster.upstream_rq_timeout,并且将envoy.cluster_name的标签增加foo_cluster (注意:由于第二个捕获组,将不会有.字符)。

    有两个正则表达式和统计信息名称的示例http.connection_manager_1.user_agent.ios.downstream_cx_total:

    [
    {
      "tag_name": "envoy.http_user_agent",
      "regex": "^http(?=\.).*?\.user_agent\.((.+?)\.)\w+?$"
    },
    {
      "tag_name": "envoy.http_conn_manager_prefix",
      "regex": "^http\.((.*?)\.)"
    }
    ]

    第一个正则表达式将删除ios,留下标签提取名称http.connection_manager_1.user_agent.downstream_cx_total。 标签envoy.http_user_agent将添加`ios标签值。

    第二个正则表达式将删除connection_manager_1。从第一个正则表达式http.connection_manager_1.user_agent.downstream_cx_total生成的标签提取名称中,留下http.user_agent.downstream_cx_total作为标签提取名称。在标签envoy.http_conn_manager_prefix将添加connection_manager_1标签值。

StatsConfig

{
  "stats_tags": [],
  "use_all_default_tags": "{...}"
}
  • 注意:如果任何默认标签被指定两次,则配置将被视为无效。

    如果没有提供,则该值默认为真。

Watchdog

Envoy进程的看门狗配置。配置后,将监视未响应的线程,并在达到配置的阈值后终止本进程。

{
  "miss_timeout": "{...}",
  "megamiss_timeout": "{...}",
  "kill_timeout": "{...}",
  "multikill_timeout": "{...}"
}

Runtime

{
  "symlink_root": "...",
  "subdirectory": "...",
  "override_subdirectory": "..."
}

RateLimitServiceConfig

{
  "cluster_name": "..."
}
  • cluster_name

返回

启动引导

node () 节点标识,会在管理服务器中呈现,用于标识目的(例如,头域中生成相应的字段)

static_resources () 指定静态资源配置

dynamic_resources () 动态发现服务源配置

cluster_manager () 该服务所有的上游群集的群集管理配置

flags_path () 可选,用于启动文件标志的路径。

stats_sinks () 可选,统计汇总设置

stats_config () 配置内部处理统计信息

stats_flush_interval () 可选,刷新到统计信息服务的周期时间。出于性能方面的考虑,Envoy锁定计数器,并且只是周期性地刷新计数器和计量器。如果未指定,则默认值为5000毫秒(5秒)。

watchdog () 可选,看门狗配置

tracing () 配置外置的跟踪服务程序。如果没有指定,则不会执行跟踪。

rate_limit_service () 配置外置的速率限制服务。如果没有指定,任何调用速率限制服务将立即返回成功。

runtime () 配置运行时配置分发服务程序。如果未指定,这将导致使用所有默认值。

admin (, 必选) 配置本地管理的HTTP服务。

listeners () 静态监听器。无论LDS如何配置,这些监听器都将可用。

clusters () 如果指定了基于网络的配置源,则需要提供一些初始集群定义,以便Envoy知道如何与管理服务交互。这些集群定义可能不使用EDS(即它们应该是基于静态IP或DNS)。

lds_config () 所有的监听器配置定义都由一个LDS配置源提供配置。

cds_config () 所有后启动引导群集定义由单个CDS配置源提供配置。

ads_config () 可选,指定一个ADS源。这必须将api_type配置为GRPC。在配置源中仅ADS基于流传输通道。

deprecated_v1 ()

() 这是使用v1 REST API提供CDS/EDS服务发现的全局SDS配置。

collector_cluster (, 必选) 配置LightStep服务的群集管理

access_token_file (, 必选) 包含访问LightStep API的token文件。

collector_cluster (, 必选) 配置Zipkin服务的群集管理器。请注意,Zipkin群集必须在Bootstrap中定义。

collector_endpoint (, 必选) 将span发送的Zipkin服务的API端口。当安装标准的Zipkin服务时,API端口通常是/api/v1/spans,这也是默认配置值。

跟踪配置,指定Envoy使用的HTTP跟踪全局设置。该配置由字段定义。未来,Envoy可能会支持其他跟踪器,但现在仅支持HTTP跟踪器。

() 提供HTTP跟踪器的配置

name (, 必选) 将要实例化的HTTP跟踪驱动程序的名称。该名称必须与支持的HTTP跟踪驱动程序相匹配。目前支持 envoy.lightstep和envoy.zipkin内置的跟踪驱动程序。

config () 跟踪驱动程序的具体配置,这取决于实例化的驱动程序。 有关示例,请参阅和跟踪驱动程序配置。

管理接口

access_log_path (, 必选) 配置管理服务的访问日志路径。如果不需要访问日志,则指定"/dev/null"。

profile_path () 管理服务的cpu分析器输出路径。如果未指定配置文件路径,则默认为"/var/log/envoy/envoy.prof"。

address (, 必选) 管理服务要监听的TCP地址

local_cluster_name () 本地集群的名称(即拥有运行此配置的Envoy集群)。为了启用区域感知路由,必须设置此选项。如果定义了local_cluster_name,则必须在资源中定义集群。这与--service-cluster选项无关,该选项不影响区域感知路由。

outlier_detection () 可选,全局的异常值检测配置。

upstream_bind_config () 可选,用于绑定新建立的上游连接。这可以通过cds_config中的upstream_bind_config以群集为基础进行覆盖。

load_stats_config () 管理服务端口负载统计信息通过StreamLoadStats流传输。这必须将api_type配置为GRPC。

() 指定异常事件日志的路径

address () 可用的statsd兼容收集器的UDP地址。如果指定,统计数据将被刷新到这个地址。

tcp_cluster_name () 提供基于TCP 的statsd兼容收集器群集名称。如果指定,Envoy将连接到此群集以刷新统计信息。

name () 统计信息的名称可以进行实例化。该名称必须与受支持的统计信息库相匹配。envoy.statsd是一个适合发送到statsd的内置收集器。

config () 特定的统计收集器配置,这取决于被实例化的收集器。以为例。

tag_name () 将标识符附加到标签值以标识接收器中的标签。 Envoy有一组默认名称和正则表达式来提取现有统计信息的动态部分,这些信息可以在Envoy存储库中的well_known_names.h中找到。如果在配置中提供了一个tag_name,那么Envoy会尝试在默认设置中找到该名称,并使用附带的正则表达式。

regex () 第一个捕获组识别要删除的名称部分。第二个捕获组(通常嵌套在第一个捕获组中)将指定统计信息的标记值。如果没有提供第二个捕获组,第一个也将用于设置标签的值。所有其他捕获组将被忽略。

统计架构。

stats_tags () 每个统计信息的名称都会通过这些标记符进行迭代处理。当标签匹配时,将从第一个捕获组名称中删除,后面的TagSpecifiers不能匹配相同的部分。

use_all_default_tags () 使用Envoy中指定的所有默认正则表达式标记。这些可以与stats_tags中自定义标签结合使用。他们将在自定义标签之前先进行处理。

有关Envoy中默认标记的列表,请参阅。

miss_timeout () Envoy统计server.watchdog_miss统计信息中的未响应线程的持续时间。如果没有指定,默认是200ms。

megamiss_timeout () Envoy在server.watchdog_mega_miss统计信息中计算无响应线程的持续时间。如果未指定,则默认值为1000ms。

kill_timeout () 如果被监控的线程在这段时间内没有响应,则假定编程错误并终止整个Envoy进程。设置为0可禁用kill行为。如果未指定,则默认值为0(禁用)。

multikill_timeout () 如果至少有两个被监控的线程,在这个持续时间内没有响应,则假定为真正的死锁并杀死整个Envoy进程。设置为0可禁用此行为。如果未指定,则默认值为0(禁用)。

Runtime。

symlink_root (, 必选) 该实现假定文件系统通过符号链接进行访问。并在切换到新文件目录时,使用原子链接交换。此参数指定符号链接的路径。Envoy将观察位置是否更改,并在发生时重新加载文件目录树。

subdirectory () 指定要在根目录中加载的子目录。如果多个系统共享相同的更新机制,这会很有用。Envoy配置文件可以包含在一个专用的子目录中。

override_subdirectory () 指定在根目录中加载的可选子目录。如果指定的目录存在,则此目录中的配置值将覆盖在主子目录中对应的值。当Envoy跨多种不同的服务器类型部署时,这很有用。有时为运行时配置提供每个服务集群目录是有用的。请参阅下面的如何使用覆盖目录。

速率限制。

(, 必选) 指定承载速率限制服务的群集管理器名称。当需要进行速率限制服务请求时,客户端将连接到该群集,获取速率限制配置服务。

Bootstrap proto
配置概述
Node
string
Duration
Bootstrap.StaticResources proto
Listener
Bootstrap.DynamicResources proto
ConfigSource
ConfigSource
Bootstrap.DynamicResources.DeprecatedV1 proto
ConfigSource
LightstepConfig proto
string
string
ZipkinConfig proto
string
Tracing proto
Tracing.Http proto
string
Admin proto
操作文档
string
string
Address
ClusterManager proto
BindConfig
ClusterManager.OutlierDetection proto
string
StatsdSink proto
Address
string
StatsSink proto
string
TagSpecifier proto
string
string
StatsConfig proto
概述
BoolValue
well_known_names.h
Watchdog proto
Duration
Duration
Duration
Duration
Runtime proto
架构概述
string
string
string
RateLimitServiceConfig proto
架构概述
string
上一级
首页目录
配置概述
Bootstrap
Bootstrap.StaticResources
Bootstrap.DynamicResources
Bootstrap.DynamicResources.DeprecatedV1
LightstepConfig
ZipkinConfig
Tracing
Tracing.Http
Admin
ClusterManager
ClusterManager.OutlierDetection
StatsdSink
StatsSink
TagSpecifier
StatsConfig
Watchdog
Runtime
RateLimitServiceConfig
Bootstrap.StaticResources
Bootstrap.DynamicResources
ClusterManager
StatsSink
StatsConfig
Watchdog
Tracing
RateLimitServiceConfig
Runtime
Admin
Cluster
cds_config
ApiConfigSource
Bootstrap.DynamicResources.DeprecatedV1
string
静态群集资源
Bootstrap tracing
Tracing.Http
Struct
LightstepConfig
ZipkinConfig
string
Bootstrap.StaticResources
ClusterManager.OutlierDetection
ApiConfigSource
Struct
StatsdSink
TagSpecifier