5.7.5. 路由器环境变量


对于本节中列出的所有项目,您可以在路由器部署配置中设置环境变量以更改其配置,或使用 oc set env 命令:

$ oc set env <object_type>/<object_name> KEY1=VALUE1 KEY2=VALUE2

例如:

$ oc set env dc/router ROUTER_SYSLOG_ADDRESS=127.0.0.1 ROUTER_LOG_LEVEL=debug
表 5.2. 路由器环境变量
变量默认描述

DEFAULT_CERTIFICATE

 

用于不公开 TLS 服务器证书的路由的默认证书的内容;采用 PEM 格式。

DEFAULT_CERTIFICATE_DIR

 

包含名为 tls.crt 的文件的目录路径。如果 tls.crt 不是包含私钥的 PEM 文件,则首先会将名为 tls.key 的文件组合到同一目录中。然后会使用 PEM-format 内容作为默认证书。只有在没有指定 DEFAULT_CERTIFICATEDEFAULT_CERTIFICATE_PATH 时使用。

DEFAULT_CERTIFICATE_PATH

 

用于不公开 TLS 服务器证书的路由的默认证书的路径;采用 PEM 格式。仅在没有指定 DEFAULT_CERTIFICATE 时使用。

EXTENDED_VALIDATION

true

如果为 true,路由器确认证书具有结构性是否正确。它不会针对任何 CA 验证证书。将 false 设置为关闭测试。

NAMESPACE_LABELS

 

要应用到命名空间的标签选择器来监视,为空表示所有。

PROJECT_LABELS

 

适用于项目的标签选择器来监视,如果为空则代表所有。

RELOAD_SCRIPT

 

reload 脚本的路径,用于重新加载路由器。

ROUTER_ALLOWED_DOMAINS

 

以逗号分隔的、路由中主机名只能从属于的域列表。可以使用域中的任何子域。选项 ROUTER_DENIED_DOMAINS 覆盖此选项中指定的任何值。如果设置,允许域之外的所有内容都将被拒绝。

ROUTER_BACKEND_PROCESS_ENDPOINTS

 

字符串,用于指定在使用模板函数 processEndpointsForAlias 时应如何处理端点。有效值为 ["shuffle", ""]。"shuffle" 将在每次调用时随机化元素。默认行为以预先确定的顺序返回。

ROUTER_BIND_PORTS_AFTER_SYNC

false

如果设置为 trueTRUE,则路由器不会绑定到任何端口,直到它完全同步状态。如果没有设置为 'true' 或 'TRUE',路由器将绑定到端口并立即开始处理请求,但可能存在没有加载的路由。

ROUTER_COOKIE_NAME

 

指定 Cookie 名称来覆盖内部生成的默认名称。名称只能包含大写字母和小写字母、数字、"_" 和 "-"。默认为路由的内部密钥进行哈希处理。

ROUTER_COMPRESSION_MIME

"文本/html 文本/纯文本文本/css"

要压缩空格分开的 mime 类型列表。

ROUTER_DENIED_DOMAINS

 

在路由中主机名不能属于的、以逗号分隔的域列表。域中没有可以使用子域。覆盖选项 ROUTER_ALLOWED_DOMAINS

ROUTER_ENABLE_COMPRESSION

 

如果为 trueTRUE,则在可能的情况下会压缩响应。

ROUTER_LISTEN_ADDR

0.0.0.0:1936

设置路由器指标的侦听地址。

ROUTER_LOG_LEVEL

warning

发送到 syslog 服务器的日志级别。

ROUTER_MAX_CONNECTIONS

20000

最大并发连接数。

ROUTER_METRICS_HAPROXY_SERVER_THRESHOLD

500

 

ROUTER_METRICS_HAPROXY_EXPORTED

 

以 CSV 格式收集的指标。例如,默认SelectedMetrics = []int{2, 4, 5, 5, 7, 8, 9, 13, 14, 17, 21, 24, 33, 35, 40, 43, 60}

ROUTER_METRICS_HAPROXY_BASE_SCRAPE_INTERVAL

5s

 

ROUTER_METRICS_HAPROXY_TIMEOUT

5s

 

ROUTER_METRICS_TYPE

hapoxy

为 HAProxy 路由器生成指标(haproxy 是唯一支持的值)

ROUTER_OVERRIDE_DOMAINS

 

以逗号分隔的域名列表。如果路由的域名与路由中的主机匹配,则主机名将被忽略,并且使用 ROUTER_SUBDOMAIN 中定义的模式。

ROUTER_OVERRIDE_HOSTNAME

 

如果设置 true,请使用 ROUTER_SUBDOMAIN 中的模板覆盖路由的 spec.host 值。

ROUTER_SERVICE_HTTPS_PORT

443

用于侦听 HTTPS 请求的端口。

ROUTER_SERVICE_HTTP_PORT

80

用于侦听 HTTP 请求的端口。

ROUTER_SERVICE_NAME

public

路由器在路由状态中标识自己的名称。

ROUTER_CANONICAL_HOSTNAME

 

(可选)路由状态中显示的路由器的主机名。

ROUTER_SERVICE_NAMESPACE

 

路由器在路由状态中标识自己的命名空间。如果使用 ROUTER_SERVICE_NAME,则需要此项。

ROUTER_SERVICE_NO_SNI_PORT

10443

用于后端通信的一些前端的内部端口(请参阅以下注释)。

ROUTER_SERVICE_SNI_PORT

10444

用于后端通信的一些前端的内部端口(请参阅以下注释)。

ROUTER_SUBDOMAIN

 

应该用来在没有 spec.host (例如 ${name}-${namespace}.myapps.myapps.mycompany.com)为路由生成主机名的模板。

ROUTER_SYSLOG_ADDRESS

 

发送日志消息的地址。如果为空,则禁用。

ROUTER_SYSLOG_FORMAT

 

如果设置,请覆盖底层路由器实施使用的默认日志格式。其值应符合底层路由器实施的规范。

ROUTER_TCP_BALANCE_SCHEME

source

负载平衡策略. 用于多个端点,用于直通路由。可用选项包括 sourceroundrobinleastconn

ROUTER_THREADS

 

指定 haproxy 路由器的线程数量。

ROUTER_LOAD_BALANCE_ALGORITHM

leastconn

负载平衡策略。用于使用多个端点的路由。可用选项包括 sourceroundrobinleastconn

ROUTE_LABELS

 

要监视的路由的标签选择器为空。

STATS_PASSWORD

 

访问路由器统计(如果路由器实施支持)需要的密码。

STATS_PORT

 

用于公开统计信息的端口(如果路由器实施支持)。如果没有设置,则 stats 不会被公开。

STATS_USERNAME

 

访问路由器统计(如果路由器实施支持)所需要的用户名。

TEMPLATE_FILE

/var/lib/haproxy/conf/custom/ haproxy-config-custom.template

HAProxy 模板文件的路径(在容器镜像中)。

ROUTER_USE_PROXY_PROTOCOL

 

当设置为 trueTRUE 时,HAProxy 需要在端口 80 或端口 443 上使用 PROXY 协议。如果负载均衡器支持协议,源 IP 地址可以通过负载均衡器传递,如 Amazon ELB。

ROUTER_ALLOW_WILDCARD_ROUTES

 

当设置为 trueTRUE 时,任何 通过路由器 准入检查的通配符策略的路由都会被 HAProxy 路由器提供服务。

ROUTER_DISABLE_NAMESPACE_OWNERSHIP_CHECK

 

设置为 true 以放松命名空间所有权策略。

ROUTER_STRICT_SNI

 

strict-sni

ROUTER_CIPHERS

intermediate

指定绑定 支持的密码 集合。

ROUTER_HAPROXY_CONFIG_MANAGER

 

当设置为 trueTRUE 时,启用 HAproxy 的动态配置管理器,该管理器可以管理特定类型的路由,并减少 HAproxy 路由器重新加载的数量。如需更多信息 ,请参阅使用 动态配置管理器。

COMMIT_INTERVAL

3600

指定提交使用动态配置管理器所做的更改的频率。这会导致底层模板路由器实施重新载入配置。

ROUTER_BLUEPRINT_ROUTE_NAMESPACE

 

设置为包含作为动态配置管理器蓝图的路由的命名空间。这允许动态配置管理器支持带有任何自定义注解、证书或配置文件的自定义路由。

ROUTER_BLUEPRINT_ROUTE_LABELS

 

设置为标签选择器,以应用到蓝图路由命名空间中的路由。这可让您指定可用作动态配置管理器蓝图的命名空间中的路由。

ROUTER_BLUEPRINT_ROUTE_POOL_SIZE

10

指定由动态配置管理器管理的每个路由蓝图的预分配池的大小。这可以通过在任何蓝图路由中使用 router.openshift.io/pool-size 注解来基于单独的路由覆盖。

ROUTER_MAX_DYNAMIC_SERVERS

5

指定添加到每个路由的最大动态服务器数量,供动态配置管理器使用。

注意

如果要在同一机器上运行多个路由器,您必须更改路由器侦听的端口,ROUTER_SERVICE_SNI_PORTROUTER_SERVICE_NO_SNI_PORT。只要在机器上是唯一的,这些端口就可能是您想要的任何端口。这些端口不会在外部公开。

路由器超时变量

TimeUnits 由一个数字及一个时间单位表示:us *(microseconds), ms(毫秒,默认)、s(秒)、m (分钟)、h *(小时) 、d (天)。

正则表达式为: [1-9][0-9]*(us\|ms\|s\|m\|h\|d)

ROUTER_BACKEND_CHECK_INTERVAL

5000ms

后端上后续存活度检查之间的时间长度。

ROUTER_CLIENT_FIN_TIMEOUT

1s

控制连接到路由的客户端的 TCP FIN 超时周期。如果给定时间内没有回答关闭连接的 FIN,则 HAProxy 将关闭连接。如果设置为较低值,并且在路由器上使用较少的资源,则这不会产生任何损害。

ROUTER_DEFAULT_CLIENT_TIMEOUT

30s

客户端必须确认或发送数据的时长。

ROUTER_DEFAULT_CONNECT_TIMEOUT

5s

连接最大时间。

ROUTER_DEFAULT_SERVER_FIN_TIMEOUT

1s

控制路由器到支持路由的 pod 的 TCP FIN 超时。

ROUTER_DEFAULT_SERVER_TIMEOUT

30s

服务器必须确认或发送数据的时长。

ROUTER_DEFAULT_TUNNEL_TIMEOUT

1h

TCP 或 WebSocket 连接保持打开的时长。如果您有 websocket/tcp 连接(以及重新加载 HAProxy 的时间),旧的 HAProxy 进程将保留在该期间。

ROUTER_SLOWLORIS_HTTP_KEEPALIVE

300s

设置等待出现新 HTTP 请求的最长时间。如果设置得太低,可能会导致浏览器和应用程序无法期望较小的 keepalive 值。附加性.有关更多信息,请参见下面的框。

ROUTER_SLOWLORIS_TIMEOUT

10s

HTTP 请求传输可以花费的时间长度。

RELOAD_INTERVAL

5s

路由器允许重新加载的最短频率来接受新的更改。

ROUTER_METRICS_HAPROXY_TIMEOUT

5s

收集 HAProxy 指标的超时时间。

注意

某些有效的超时值可以是某些变量的总和,而不是特定的预期超时。

例如:ROUTER_SLOWLORIS_HTTP_KEEPALIVE 调整 超时 http-keep-alive,并且默认设置为 300s,但 haproxy 还会等待 tcp-request inspect-delay,它设置为 5s。在这种情况下,整个超时时间将是 300s5s

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.