

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

# Envoy 镜像
<a name="envoy"></a>

**重要**  
终止支持通知：2026 年 9 月 30 日， Amazon 将停止对的支持。 Amazon App Mesh 2026 年 9 月 30 日之后，您将无法再访问 Amazon App Mesh 控制台或 Amazon App Mesh 资源。有关更多信息，请访问此博客文章[从迁移 Amazon App Mesh 到 Amazon ECS Service Connect](https://www.amazonaws.cn/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

Amazon App Mesh 是基于 Envo [y](https://www.envoyproxy.io/) 代理的服务网格。

![\[ECS Task/Kubernetes Pod with Proxy and Microservice Container communicating via ports 8080 and 8081.\]](http://docs.amazonaws.cn/app-mesh/latest/userguide/images/proxy.png)


您必须向 Amazon ECS 任务、Kubernetes pod 或用您的 App Mesh 端点表示的 Amazon EC2 实例（例如：虚拟节点或虚拟网关）中添加 Envoy 代理。App Mesh 出售了一个 Envoy 代理容器镜像，该镜像已修补了最新的漏洞和性能更新。在向你提供新图像之前，App Mesh 会根据 App Mesh 功能集测试每个新的 Envoy 代理版本。

## 特使图像变体
<a name="envoy-variants"></a>

App Mesh 提供了 Envoy 代理容器镜像的两种变体。两者的区别在于 Envoy 代理如何与 App Mesh 数据平面进行通信，以及 Envoy 代理如何相互通信。一个是标准映像，它与标准 App Mesh 服务端点通信。另一种变体符合 FIPS，它与 App Mesh FIPS 服务端点通信，并在 App Mesh 服务之间的 TLS 通信中强制执行 FIPS 加密。

您可以从下面的列表中选择一个地区镜像，也可以从我们的[公共存储库](https://gallery.ecr.aws/appmesh/aws-appmesh-envoy)中选择一个名为 `aws-appmesh-envoy` 的镜像。

**重要**  
从 2023 年 6 月 30 日起，只有 Envoy 镜像`v1.17.2.0-prod`或更高版本可以与 App Mesh 兼容。对于之前使用 Envoy 镜像的当前客户`v1.17.2.0`，尽管现有的 envoy 将继续兼容，但我们强烈建议迁移到最新版本。
作为最佳实践，强烈建议定期将 Envoy 版本升级到最新版本。只有最新的 Envoy 版本经过最新安全补丁、功能发布和性能改进的验证。
版本 `1.17` 是对 Envoy 的重大更新。有关更多详细信息，请参阅[更新/迁移到 Envoy 1.17](https://docs.amazonaws.cn/app-mesh/latest/userguide/1.17-migration.html)。
可兼容版本 `1.20.0.1` 或更高版本 `ARM64`。
如需 `IPv6` 支持，需要 Envoy 版本 `1.20` 或更高版本。

**注意**  
FIPS 仅在美国和加拿大的地区可用。

所有[支持的](https://docs.amazonaws.cn/general/latest/gr/appmesh.html)区域都可以*Region-code*替换为`me-south-1`、、、`ap-east-1``ap-southeast-3``eu-south-1``il-central-1`、和以外的任何区域`af-south-1`。  
标准  

```
840364872350.dkr.ecr.region-code.amazonaws.com/aws-appmesh-envoy:v1.34.13.0-prod
```
符合 FIPS 标准  

```
840364872350.dkr.ecr.region-code.amazonaws.com/aws-appmesh-envoy:v1.34.13.0-prod-fips
```

`me-south-1`  
标准  

```
772975370895.dkr.ecr.me-south-1.amazonaws.com/aws-appmesh-envoy:v1.34.13.0-prod
```

`ap-east-1`  
标准  

```
856666278305.dkr.ecr.ap-east-1.amazonaws.com/aws-appmesh-envoy:v1.34.13.0-prod
```

`ap-southeast-3`  
标准  

```
909464085924.dkr.ecr.ap-southeast-3.amazonaws.com/aws-appmesh-envoy:v1.34.13.0-prod
```

`eu-south-1`  
标准  

```
422531588944.dkr.ecr.eu-south-1.amazonaws.com/aws-appmesh-envoy:v1.34.13.0-prod
```

`il-central-1`  
标准  

```
564877687649.dkr.ecr.il-central-1.amazonaws.com/aws-appmesh-envoy:v1.34.13.0-prod
```

`af-south-1`  
标准  

```
924023996002.dkr.ecr.af-south-1.amazonaws.com/aws-appmesh-envoy:v1.34.13.0-prod
```

`cn-north-1`  
标准  

```
919366029133.dkr.ecr.cn-north-1.amazonaws.com.cn/aws-appmesh-envoy:v1.34.13.0-prod
```

`cn-northwest-1`  
标准  

```
919830735681.dkr.ecr.cn-northwest-1.amazonaws.com.cn/aws-appmesh-envoy:v1.34.13.0-prod
```

`Public repository`  
标准  

```
public.ecr.aws/appmesh/aws-appmesh-envoy:v1.34.13.0-prod
```
符合 FIPS 标准  

```
public.ecr.aws/appmesh/aws-appmesh-envoy:v1.34.13.0-prod-fips
```

**注意**  
我们建议为 Envoy 容器分配 512 个 CPU 单元及至少 64 MiB 的内存。Fargate 上可设置的最小内存为 1024 MiB。如果容器洞察或其他指标表明由于负载增加而导致资源不足，则可以增加对 Envoy 容器的资源分配。

**注意**  
从 `v1.22.0.0` 开始的所有 `aws-appmesh-envoy` 镜像发布版本都是作为 Distroless Docker 映像构建的。我们进行此项更改是为了缩小映像尺寸并降低映像中未使用的软件包中存在的漏洞暴露风险。如果你在 aws-appmesh-envoy镜像之上构建，并且依赖一些 AL2 基础包（例如 yum）和功能，那么我们建议你从镜像内部复制二进制文件，用基础构建一个新的 Docker `aws-appmesh-envoy` 镜像。 AL2   
运行此脚本生成带有标签的自定义的 Docker 映像 `aws-appmesh-envoy:v1.22.0.0-prod-al2:`  

```
cat << EOF > Dockerfile
FROM public.ecr.aws/appmesh/aws-appmesh-envoy:v1.22.0.0-prod as envoy

FROM public.ecr.aws/amazonlinux/amazonlinux:2
RUN yum -y update && \
    yum clean all && \
    rm -rf /var/cache/yum

COPY --from=envoy /usr/bin/envoy /usr/bin/envoy
COPY --from=envoy /usr/bin/agent /usr/bin/agent
COPY --from=envoy /aws_appmesh_aggregate_stats.wasm /aws_appmesh_aggregate_stats.wasm

CMD [ "/usr/bin/agent" ]
EOF

docker build -f Dockerfile -t aws-appmesh-envoy:v1.22.0.0-prod-al2 .
```

在 Amazon ECR 中访问此容器镜像的权限由 Amazon Identity and Access Management (IAM) 控制。因此，您必须使用 IAM 来验证您拥有对 Amazon ECR 的读取权限。例如，在使用 Amazon ECS 时，您可以为 Amazon ECS 任务分配适当的任务执行角色。如果您使用限制访问特定的 Amazon ECR 资源的 IAM 策略，请务必确认您允许访问标识 `aws-appmesh-envoy` 存储库的特定地区的 Amazon 资源名称（ARN）。例如，在 `us-west-2` 地区，您允许访问以下资源：`arn:aws:ecr:us-west-2:840364872350:repository/aws-appmesh-envoy`。有关更多信息，请参阅 [Amazon ECR 托管策略](https://docs.amazonaws.cn/AmazonECR/latest/userguide/ecr_managed_policies.html)。如果您在亚马逊 EC2 实例上使用 Docker，请对 Docker 存储库进行身份验证。有关更多信息，请参阅[注册表身份验证](https://docs.amazonaws.cn/AmazonECR/latest/userguide/Registries.html#registry_auth)。

我们偶尔会发布新的 App Mesh 功能，这些功能依赖于 Envoy 的更改，这些更改尚未合并到上游 Envoy 镜像中。要在上游合并 Envoy 变更之前使用这些新的 App Mesh 功能，您必须使用 App Mesh 提供的 Envoy 容器镜像。有关变更列表，请参阅 [App Mesh GitHub 路线图中与`Envoy Upstream`标签有关的问题](https://github.com/aws/aws-app-mesh-roadmap/labels/Envoy%20Upstream)。我们建议将 App Mesh Envoy 容器的映像作为最佳支持选项。