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

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

Fargate Pod 配置

本节介绍在上运行 Kubernetes Pod 的一些唯一 Pod 配置的详细信息。AmazonFargate

Pod CPU 和内存

Kubernetes 允许您定义请求、最低 vCPU 量以及分配给 Pod 中每个容器的内存资源。Pod 由 Kubernetes 安排,以确保至少每个 Pod 的请求资源可用于计算资源。有关更多信息,请参阅 Kubernetes 文档中的管理容器的计算资源

在 Fargate 上安排 Pod 后,Pod 规格中的 vCPU 和内存预留将确定为 Pod 配置的 CPU 和内存量。

  • 超出所有 Init 容器的最大请求用于确定 Init 请求 vCPU 和内存要求。

  • 将所有长时间运行的容器的请求相加来确定长时间运行的请求的 vCPU 和内存要求。

  • 然后为要用于 Pod 的 vCPU 和内存请求选择上述两个值中较大的值。

  • Fargate 会为所需 Kubernetes 组件的每个 Pod 的内存预留增加 256 MB (kubeletkube-proxy, 和containerd)。

Fargate 向上舍入到下面显示的最接近 vCPU 与内存请求总和的计算配置,以确保 Pod 始终拥有运行所需的资源。

如果未指定 vCPU 和内存组合,则使用最小的可用组合(.25 vCPU 和 0.5 GB 内存)。

下表显示了 Fargate 上运行的 Pod 可以使用的 vCPU 和内存组合。

vCPU 值

内存值

.25 vCPU

0.5GB、1GB、2GB

.5 vCPU

1GB、2GB、3GB、4GB

1 vCPU

2GB、3GB、4GB、5GB、6GB、7GB、8GB

2 vCPU

4GB 到 16GB 之间(以 1GB 为增量)

4 vCPU

8GB 到 30GB 之间(以 1GB 为增量)

为 Kubernetes 组件保留的额外内存可能会导致 Fargate 任务的 vCPUs 数量超过请求预配置的 vCPU 数量。例如,对 1 个 vCPU 和 8 GB 内存的请求将在其内存请求中添加 256 MB,并将预配有 2 个 vCPUs 和 9 GB 内存的 Fargate 任务,因为没有 1 个 vCPU 和 9 GB 内存的任务可用。

在 Fargate 上运行的容器的大小与 Kubernetes 报告的节点大小之间没有相关性kubectl get nodes。报告的节点大小通常大于容量。您可以使用以下命令验证 Pod 容量。Replace<pod-name>(包括<>),其中包含您的窗格的名称。

kubectl describe pod <pod-name>

输出

... annotations: CapacityProvisioned: 0.25vCPU 0.5GB ...

这些区域有:CapacityProvisioned注释表示强制容器容量,并决定在 Fargate 上运行的容器的成本。有关计算配置的定价信息,请参阅AmazonFargate 定价

Fargate 存储

预置后,Fargate 上运行的每个 Pod 将接收 20 GB 的容器映像层存储。Pod 存储是短暂存储。Pod 停止后,该存储将被删除。2020 年 5 月 28 日或之后在 Fargate 上启动的新 Pod,默认情况下已启用短暂存储卷加密。使用 AES-256 加密算法对短暂 Pod 存储进行加密,使用AmazonFargate 托管密钥。

注意

Fargate 上运行的 Amazon EKS Pod 的可用存储空间不到 20GB,因为kubelet和加载在容器内的其他 Kubernetes 模块。