运行时配置
运行时配置是指包含本地文件的可重载配置。如果运行时未配置,则默认使用“null”,该程序会使用代码中内置的缺省值。
文件系统层
在配置参考的各个部分描述了可用的运行时配置。例如,以下是上游群集的运行时配置。
假定文件夹/srv/runtime/v1
指向的是存放全局运行时配置的文件路径。以下是运行时的典型配置设置:
- symlink_root(根目录的符号链接):
/srv/runtime/current
- subdirectory(子目录):
envoy
- override_subdirectory(覆盖子目录):
envoy_override
其中/srv/runtime/current
是链接到/srv/runtime/v1
目录的符号链接。
运行时配置中的每个“.”表示新的目录层级,以symlink_root + subdirectory
为目录根。例如,health_check.min_interval
键展开之后具有以下完整文件路径(使用符号链接):
/srv/runtime/current/envoy/health_check/min_interval
路径的末端部分是文件。文件内容为运行时配置值。在从文件中读取数值时,空格和换行将被忽略。
目录override_subdirectory
与--service-cluster
命令行选项配合一起使用。假设--service-cluster
已被设置为my-cluster
。Envoy将优先在以下完整路径中查找health_check.min_interval
配置项:
/srv/runtime/current/envoy_override/my-cluster/health_check/min_interval
如果找到,该值将覆盖在主路径中查找到的任何值。这允许用户在全局默认值之外,自定义单个群集的运行时配置值。
注释
以#开头的行被视为注释。合理的注释可以帮助理解所提供值的背景/原因。另外在一个空文件增加注释也是有用的,预留文件的部署,以便在需要的时候可以使用。
通过符号链接交换更新运行值
有两个步骤来更新任何运行时值。首先,创建整个全新运行时配置或者拷贝/更新所需的运行时配置。其次,使用以下命令或者等效命令,将旧的符号链接根自动交换到新的配置目录下:
/srv/runtime:~$ ln -s /srv/runtime/v2 new && mv -Tf new current
关于如何部署文件系统数据,以及相关垃圾回收等问题,超出了本文档的范围。
统计
文件系统在运行时会收集一些统计信息,以runtime.
命名空间。
名称 | 类型 | 描述 |
---|---|---|
load_error | Counter | 因错误而导致加载尝试总数 |
override_dir_not_exists | Counter | 未使用覆盖目录的加载总数 |
override_dir_exists | Counter | 使用覆盖目录的加载总数 |
load_success | Counter | 成功加载的尝试总数 |
num_keys | Gauge | 当前加载的键值数量 |