AWS Fargate - Amazon EKS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

AWS Fargate

本主题讨论如何使用 Amazon EKS 在 AWS Fargate 上运行 Kubernetes Pod。

AWS Fargate 是一种为容器按需提供大小合适的计算容量的技术。使用 AWS Fargate,您不必再预置、配置或扩展虚拟机组即可运行容器。这样一来,您就无需再选择服务器类型、确定扩展节点组的时间和优化集群打包。

您可以控制哪些 Pod 在 Fargate 上启动,以及它们如何使用 Fargate 配置文件(定义为 Amazon EKS 集群的一部分)运行。

Amazon EKS 使用由 AWS 构建的控制器(使用 Kubernetes 提供的上游可扩展模型)将 Kubernetes 与 AWS Fargate 集成。这些控制器作为 Amazon EKS 托管 Kubernetes 控制层面的一部分运行,负责将本机 Kubernetes Pod 安排到 Fargate 上。除了若干转换和验证准入控制器外,Fargate 控制器还包括一个与默认 Kubernetes 计划程序一起运行的新计划程序。当您启动满足 Fargate 上的运行条件的 Pod 时,集群中运行的 Fargate 控制器会识别、更新 Pod 并将其安排到 Fargate 上。

Fargate 上运行的每个 Pod 都具有自己的隔离边界,不与其他 Pod 共享底层内核、CPU 资源、内存资源或弹性网络接口。

本主题介绍在 Fargate 上运行的 Pod 的不同组件,还列出了将 Fargate 与 Amazon EKS 结合使用时的特别注意事项。

AWS Fargate 和 Amazon EKS 目前在以下区域中可用:

区域名称 区域(可用区约束)
美国东部(俄亥俄州) us-east-2
美国东部(弗吉尼亚北部) us-east-1
美国西部(加利福尼亚北部) us-west-1
美国西部(俄勒冈) us-west-2
亚太地区(香港) ap-east-1
亚太地区(孟买) ap-south-1
亚太区域(首尔) ap-northeast-2
亚太区域(新加坡) ap-southeast-1
亚太区域(悉尼) ap-southeast-2
亚太区域(东京) ap-northeast-1 (仅限 apne1-az1apne1-az2apne1-az4
加拿大 (中部) ca-central-1 (仅限 cac1-az1cac1-az2
欧洲(法兰克福) eu-central-1
欧洲(爱尔兰) eu-west-1
欧洲(伦敦) eu-west-2
欧洲(巴黎) eu-west-3
欧洲(斯德哥尔摩) eu-north-1
南美洲(圣保罗) sa-east-1
中东(巴林) me-south-1

AWS Fargate 注意事项

以下是使用 Amazon EKS 上的 Fargate 时要考虑的一些事项。

  • 传统负载均衡器 和 网络负载均衡器 只能与 IP 目标一起使用。您还可以将 AWS Application Load Balancer 与 Fargate 结合使用。有关更多信息,请参阅 负载均衡器 – IP 目标上的应用程序负载均衡Amazon EKS

  • 在对 Pod 进行安排时,它们必须与 Fargate 配置文件匹配,才能在 Fargate 上运行。与 Fargate 配置文件不匹配的 Pod 可能会停滞为 Pending。 如果存在匹配的 Fargate 配置文件,您可以删除已创建的待处理 Pod,以将它们重新安排到 Fargate。

  • Fargate 上不支持守护程序集。如果您的应用程序需要守护程序,则应将该守护程序重新配置为在您的 Pod 中作为附加容器运行。

  • Fargate 上不支持特权容器。

  • 在 Fargate 上运行的 Pod 无法在 Pod 清单中指定 HostPort 或 HostNetwork。

  • GPUs 目前在 Fargate 上不可用。

  • 您不能将 Pod 的安全组 与 Fargate 上运行的 Pod 一起使用。

  • 在 Fargate 上运行的 Pod 仅在私有子网上受支持(对 AWS 服务具有 NAT 网关访问权限,但没有到 Internet 网关的直接路由),因此您的集群的 VPC 必须具有可用的私有子网。对于没有出站 Internet 访问的集群,请参阅私有集群

  • 您可以使用 Vertical Pod Autoscaler 最初调整 Fargate Pod 的 CPU 和内存大小,然后使用 Horizontal Pod Autoscaler 扩展这些 Pod。如果您希望 Vertical Pod Autoscaler 自动重新部署具有更大的 CPU 和内存组合的 Pod 到 Fargate,请将 Vertical Pod Autoscaler 的模式设置为 AutoRecreate 以确保功能正常运行。有关更多信息,请参阅 上的 Vertical Pod AutoscalerGitHub 文档。

  • 必须为 VPC 启用 DNS 解析和 DNS 主机名。有关详细信息,请参阅查看和更新您的 VPC 的 DNS 支持

  • Fargate 在 VM 隔离的环境中运行每个 Pod,不与其他 Pod 共享资源。但是,由于 Kubernetes 是单租户编排工具,Fargate 无法保证 Pod 级的安全隔离。您应该使用单独的 Amazon EKS 集群运行需要完全安全隔离的敏感工作负载或不可靠的工作负载。

  • Fargate 配置文件支持从 VPC 辅助 CIDR 块指定子网。您可能需要指定辅助 CIDR 块,因为子网中可用的 IP 地址数量有限。因此,可在集群中创建的 Pod 数量受到限制。对 Pod 使用不同的子网将允许您增加可用 IP 地址的数量。有关更多信息,请参阅向 VPC 添加 IPv4 CIDR 块