命令行选项
-
(可选) v1 或 v2 JSON/YAML/proto3 配置文件的路径。 若未设置此选项,需要指定 选项。它会首先作为 v2 引导配置文件进行解析,若解析失败,会根据 [
--v2-config-only
] 选项决定是否作为 进行解析。对于 v2 的配置文件,有效的扩展名包括.json
、.yaml
、.pb
和.pb_text
,分别表示JSON、YAML、二进制 proto3 和 格式。 --config-yaml <yaml string>
(可选) 一个 YAML 字符串,作为 v2 引导配置。若同时设置了
--config-path
,此 YAML 字符串的值会被合并到 指定的引导配置并覆盖相应选项。由于 YAML 是 JSON 的超集,也可以给--config-yaml
传入一个 JSON 字符串。 与 v1 引导配置不兼容。一个通过命令行覆盖节点 id 的例子:
./envoy -c bootstrap.yaml –config-yaml "node: {id: 'node1'}"
--v2-config-only
(可选) 此标识决定配置文件是否应该只被解析为 v2 引导配置文件。若传入 false(默认选项),v2 引导配置解析失败时,会再次尝试将其解析为 。
-
(可选) Envoy 的执行模式之一:
serve
: (默认选项) 校验 JSON 配置,然后正常提供服务。validate
:校验 JSON 配置,然后退出。会打印一条 “OK” 消息(若退出码为 0)或所有配置文件产生的错误(若退出码为 1)。不会产生网络流量,热重启流程也不会执行,所以不会影响到机器上其他的 Envoy 进程。
--admin-address-path <path string>
(可选) 输出管理地址和端口的文件路径。
--base-id <integer>
--concurrency <integer>
(可选) 启动的 工作线程数。若未指定则默认使用机器上的硬件线程数。
-l <string>, --log-level <string>
(可选) 日志级别。非开发者通常不应该设置这个选项。有关可用的日志级别和默认值,请参阅帮助文本。
--log-path <path string>
(可选) 输出日志的文件路径。处理 SIGUSR1 时,该文件将被重新打开。若未设置,输出到 stderr。
--log-format <format string>
(可选) 用于格式化日志消息元数据的格式字符串。若未设置,会使用一个默认的格式字符串 “[%Y-%m-%d %T.%e][%t][%l][%n] %v”。
支持的格式化标记有(包括示例输出):
--restart-epoch <integer>
(可选) 周期(Envoy 被热重启而不是全新启动的次数)。对于第一次启动默认为 0。此选项告诉 Envoy 是尝试创建,还是打开一个已存在的热重启所需的共享内存区域。每次热重启后它都应该被增加。多数情况下热重启包装器设置的 RESTART_EPOCH 环境变量应该被传递给这个选项。
-
(可选) 为当前的二进制文件输出一个热重启兼容性版本。可以将其与 管理接口的输出进行比较,以确定新的二进制文件和正在运行的二进制文件是否热重启兼容。
-
(可选) 定义 Envoy 运行的本地服务节点名称。本地服务节点名称首先来自引导节点消息的 id 字段。此命令行选项为指定此值提供了另一种方法,并将覆盖引导配置中设置的任何值。若使用了以下任何功能,则应该通过此命令行选项或引导配置来设置它:、CDS 和 。
--service-zone <string>
(可选) 定义 Envoy 运行的本地服务区域名称。本地服务区域名称首先来自引导节点消息的 字段。此命令行选项为指定此值提供了另一种方法,并将覆盖引导配置中设置的任何值。若使用了发现服务路由且发现服务暴露出区域数据,则应该通过此命令行选项或引导配置来设置它。区域的含义是依赖于上下文的,如 AWS 上的,GCP 上的区域,等等。
--file-flush-interval-msec <integer>
(可选) 文件缓冲区刷新间隔(毫秒)。默认为 10 秒。此设置在文件创建期间用于确定缓冲区刷新到文件的间隔时间。缓冲区在每次写满时或每次间隔过后都会刷新,以先到者为准。调整此设置在跟踪输出时很有用,可以获得更多(或更少)的即时刷新。
--drain-time-s <integer>
(可选) 热重启期间 Envoy 将耗尽连接的时间(秒)。请参阅热重启概述了解更多信息。默认为 600 秒(10 分钟)。通常耗尽时间应小于通过 选项设置的父进程关闭时间。如何配置这两个设置取决于具体的部署。在边缘的场景下,可能需要耗费很长时间。在服务到服务的场景下,耗尽和关闭的时间可能缩短很多(例如,60s/90s)。
--parent-shutdown-time-s <integer>
(可选) Envoy 在热重启时关闭父进程之前等待的时间(秒)。请参阅热重启概述了解更多信息。默认为 900 秒(15 分钟)。
--max-obj-name-len <uint64_t>
(可选) cluster/route_config/listener 中名称字段的最大长度(以字节为单位)。此选项通常用于自动生成集群名称的场景,通常超过会 60 字符的内部限制。默认为 60。
--max-stats <uint64_t>
(可选) 热重启间可以共享统计的最大数量。此设置会影响 的输出;热重启必须使用相同的值。默认为 16384。