运行时配置

运行时配置是指包含本地文件的可重载配置。如果运行时未配置,则默认使用“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键展开之后具有以下完整文件路径(使用符号链接):

  1. /srv/runtime/current/envoy/health_check/min_interval

路径的末端部分是文件。文件内容为运行时配置值。在从文件中读取数值时,空格和换行将被忽略。

目录override_subdirectory--service-cluster命令行选项配合一起使用。假设--service-cluster已被设置为my-cluster。Envoy将优先在以下完整路径中查找health_check.min_interval配置项:

  1. /srv/runtime/current/envoy_override/my-cluster/health_check/min_interval

如果找到,该值将覆盖在主路径中查找到的任何值。这允许用户在全局默认值之外,自定义单个群集的运行时配置值。

注释

以#开头的行被视为注释。合理的注释可以帮助理解所提供值的背景/原因。另外在一个空文件增加注释也是有用的,预留文件的部署,以便在需要的时候可以使用。

通过符号链接交换更新运行值

有两个步骤来更新任何运行时值。首先,创建整个全新运行时配置或者拷贝/更新所需的运行时配置。其次,使用以下命令或者等效命令,将旧的符号链接根自动交换到新的配置目录下:

  1. /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 当前加载的键值数量

返回