Envoy 代理 - AWS App Mesh

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Envoy 代理

代理是为 App Mesh 出售的 Envoy 镜像中的一个进程管理器。代理确保 Envoy 一直保持运行、保持健康并减少停机时间。它会过滤 Envoy 统计数据和辅助数据,以帮助简要了解 Envoy 代理在 App Mesh 中的运行情况。这可以帮助您更快地排除相关错误。

当 Envoy 代理运行状况不佳时,您可以使用代理配置要重启该代理的次数。如果出现故障,代理会在 Envoy 退出时记录最终退出状态。您可以在排除故障时使用它。代理还可以促进 Envoy 连接耗尽,这有助于提高应用程序对故障的弹性。

使用以下变量为 Envoy 配置代理:

  • APPNET_ENVOY_RESTART_COUNT — 当此变量设置为非零值时,代理会尝试重新启动 Envoy 代理进程,直到轮询时其认为代理进程状态不正常时设置的数字。在代理运行状况检查失败的情况下,与容器编排工具替换任务或容器组 (pod) 相比,这有助于缩短停机时间。

  • PID_POLL_INTERVAL_MS — 配置此变量时,默认值保持为 100。当设置为此值时,与通过容器编排工具运行状况检查替换任务或容器组 (pod) 相比,您可以更快地检测和重启退出 Envoy 进程。

  • LISTENER_DRAIN_WAIT_TIME_S — 配置此变量时,请考虑为停止任务或容器组 (pod) 而设置的容器编排工具超时的情况。例如,如果此值大于编排工具超时时间,则 Envoy 代理只能在编排工具强制停止任务或容器组 (pod) 之前的持续时间内耗尽。

  • APPNET_AGENT_ADMIN_MODE — 当此变量设置为 tcpuds 时,代理会提供本地管理接口。该管理接口充当与 Envoy 代理交互的安全端点,为运行状况检查、遥测数据提供以下 API,并总结代理的运行状况。

    • GET /status — 查询 Envoy 统计数据并返回服务器信息。

    • POST /drain_listeners — 耗尽所有入站侦听器。

    • POST /enableLogging?level=<desired_level> — 更改所有记录器的 Envoy 日志级别。

    • GET /stats/prometheus — 以 Prometheus 格式显示 Envoy 统计数据。

    • GET /stats/prometheus?usedonly — 仅显示 Envoy 已更新的统计数据。

有关代理配置变量的更多信息,请参阅 Envoy 配置变量

从版本 1.21.0.0 开始,新 AWS App Mesh 代理包含在 App Mesh 优化的 Envoy 镜像中,无需在客户任务或容器组 (pod) 中分配额外的资源。