Envoy 镜像 - AWS App Mesh

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

Envoy 镜像

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

您必须向 Amazon ECS 任务、Kubernetes pod 或用您的 App Mesh 端点表示的 Amazon EC2 实例(例如:虚拟节点或虚拟网关)中添加 Envoy 代理。App Mesh 出售 Envoy 代理 Docker 容器镜像,并验证该容器镜像是否已使用最新的漏洞和性能补丁进行修补。在向您提供新的容器镜像之前,App Mesh 会针对 App Mesh 功能集测试新的 Envoy 代理版本。

您可以从下面的列表中选择一个地区镜像,也可以从我们的公共存储库中选择一个名为 aws-appmesh-envoy 的镜像。

重要
  • 从 2023 年 6 月 30 日起,只有 Envoy 镜像 v1.17.2.0-prod 或更高版本可与 App Mesh 兼容。对于当前使用 v1.17.2.0 之前版本的 Envoy 镜像的客户,尽管现有的 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 之外的所有受支持地区。您可以用me-south-1ap-east-1ap-southeast-3eu-south-1il-central-1af-south-1 之外的任何地区替换地区代码

    840364872350.dkr.ecr.region-code.amazonaws.com/aws-appmesh-envoy:v1.27.2.0-prod
  • me-south-1 地区:

    772975370895.dkr.ecr.me-south-1.amazonaws.com/aws-appmesh-envoy:v1.27.2.0-prod
  • ap-east-1 地区:

    856666278305.dkr.ecr.ap-east-1.amazonaws.com/aws-appmesh-envoy:v1.27.2.0-prod
  • ap-southeast-3 地区:

    909464085924.dkr.ecr.ap-southeast-3.amazonaws.com/aws-appmesh-envoy:v1.27.2.0-prod
  • eu-south-1 地区:

    422531588944.dkr.ecr.eu-south-1.amazonaws.com/aws-appmesh-envoy:v1.27.2.0-prod
  • il-central-1 地区:

    564877687649.dkr.ecr.il-central-1.amazonaws.com/aws-appmesh-envoy:v1.27.2.0-prod
  • af-south-1 地区:

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

    public.ecr.aws/appmesh/aws-appmesh-envoy:v1.27.2.0-prod
注意

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

注意

v1.22.0.0 开始的所有 aws-appmesh-envoy 镜像发布版本都是作为 Distroless Docker 映像构建的。我们进行此项更改是为了缩小映像尺寸并降低映像中未使用的软件包中存在的漏洞暴露风险。如果您在 aws-appmesh-envoy 镜像之上进行构建,同时依赖 某些 AL2 基础包(例如:yum)及其功能,那么我们建议您从 aws-appmesh-envoy 镜像内部复制二进制文件来构建一个基于 AL2 的新的 Docker 映像。

运行此脚本生成带有标签的自定义的 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 时,您可以为 Amazon ECS 任务分配适当的任务执行角色。如果您使用限制访问特定的 Amazon ECR 资源的 IAM policy,请务必确认您允许访问标识 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 容器的映像作为最佳支持选项。