Envoy 代理 - Amazon App Mesh
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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 开始,新 Amazon App Mesh 代理包含在 App Mesh 优化的 Envoy 镜像中,无需在客户任务或容器组 (pod) 中分配额外的资源。