Envoy 镜像 - AWS App Mesh

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

Envoy 镜像

AWS App Mesh 是基于 Envo y 代理的服务网格。

ECS Task/Kubernetes Pod with Proxy and Microservice Container communicating via ports 8080 and 8081.

您必须将 Envoy 代理添加到亚马逊ECS任务、Kubernetes 容器或由您的 App Mesh 终端节点表示的亚马逊EC2实例(例如虚拟节点或虚拟网关)。App Mesh 出售了一个 Envoy 代理容器镜像,该镜像已修补了最新的漏洞和性能更新。在向你提供新图像之前,App Mesh 会根据 App Mesh 功能集测试每个新的 Envoy 代理版本。

特使图像变体

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

您可以从下面的列表中选择一个地区镜像,也可以从我们的公共存储库中选择一个名为 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

  • 可兼容版本 1.20.0.1 或更高版本 ARM64

  • 如需 IPv6 支持,需要 Envoy 版本 1.20 或更高版本。

me-south-1ap-east-1ap-southeast-3eu-south-1il-central-1af-south-1 之外的所有受支持地区。你可以更换 Region-codeme-south-1、、、ap-east-1ap-southeast-3eu-south-1il-central-1、和以外的任何区域af-south-1

Standard

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

FIPS-符合

840364872350.dkr.ecr.region-code.amazonaws.com/aws-appmesh-envoy:v1.29.6.1-prod-fips
me-south-1

Standard

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

FIPS-符合

772975370895.dkr.ecr.me-south-1.amazonaws.com/aws-appmesh-envoy:v1.29.6.1-prod-fips
ap-east-1

Standard

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

FIPS-符合

856666278305.dkr.ecr.ap-east-1.amazonaws.com/aws-appmesh-envoy:v1.29.6.1-prod-fips
ap-southeast-3

Standard

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

FIPS-符合

909464085924.dkr.ecr.ap-southeast-3.amazonaws.com/aws-appmesh-envoy:v1.29.6.1-prod-fips
eu-south-1

Standard

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

FIPS-符合

422531588944.dkr.ecr.eu-south-1.amazonaws.com/aws-appmesh-envoy:v1.29.6.1-prod-fips
il-central-1

Standard

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

FIPS-符合

564877687649.dkr.ecr.il-central-1.amazonaws.com/aws-appmesh-envoy:v1.29.6.1-prod-fips
af-south-1

Standard

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

FIPS-符合

924023996002.dkr.ecr.af-south-1.amazonaws.com/aws-appmesh-envoy:v1.29.6.1-prod-fips
Public repository

Standard

public.ecr.aws/appmesh/aws-appmesh-envoy:v1.29.6.1-prod

FIPS-符合

public.ecr.aws/appmesh/aws-appmesh-envoy:v1.29.6.1-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 中访问此容器图片的权限由 AWS Identity and Access Management (IAM) 控制。因此,您必须使用IAM来验证您是否拥有对 Amazon 的读取权限ECR。例如,在使用 Amazon 时ECS,您可以为亚马逊任务分配适当的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 托管政策。如果您在亚马逊EC2实例上使用 Docker,请向存储库对 Docker 进行身份验证。有关更多信息,请参阅注册表身份验证

我们偶尔会发布新的 App Mesh 功能,这些功能依赖于 Envoy 的更改,这些更改尚未合并到上游 Envoy 镜像中。要在上游合并 Envoy 变更之前使用这些新的 App Mesh 功能,您必须使用 App Mesh 提供的 Envoy 容器镜像。有关变更列表,请参阅 App Mesh GitHub 路线图中与Envoy Upstream标签有关的问题。我们建议将 App Mesh Envoy 容器的映像作为最佳支持选项。