

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

# 已知限制和服务配额
<a name="known_limits_and_service_quotas"></a>

**提示**  
 [通过亚马逊 EKS 研讨会探索](https://aws-experience.com/emea/smb/events/series/get-hands-on-with-amazon-eks?trk=4a9b4147-2490-4c63-bc9f-f8a84b122c8c&sc_channel=el)最佳实践。

Amazon EKS 可用于各种工作负载，可以与各种 AWS 服务进行交互，而且我们已经看到客户工作负载会遇到类似的 AWS 服务配额和其他阻碍可扩展性的问题。

您的 AWS 账户有默认配额（您的团队可以请求的每个 AWS 资源数量的上限）。每个 AWS 服务都定义自己的配额，配额通常是特定区域的。您可以申请增加某些配额（软限制），而其他配额不能增加（硬限制）。在设计应用程序时，应考虑这些值。考虑定期审查这些服务限制，并在应用程序设计期间将其纳入您的应用程序设计中。

您可以在 [ AWS 服务配额控制台](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html#request-increase)或使用 AWS CLI 查看账户中的使用[情况并提出配额增加请求](https://repost.aws/knowledge-center/request-service-quota-increase-cli)。有关服务配额的更多详细信息以及有关提高配额的任何其他限制或通知，请参阅相应 AWS 服务的 AWS 文档。

**注意**  
 [亚马逊 EKS 服务配额](https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html)列出了服务配额，并提供了请求增加配额的链接（如果有）。

## 其他 AWS 服务配额
<a name="_other_aws_service_quotas"></a>

我们已经看到 EKS 客户受到下面列出的其他 AWS 服务配额的影响。其中一些可能仅适用于特定的用例或配置，但是您可以考虑您的解决方案在扩展时是否会遇到任何此类情况。配额按服务进行组织，每个配额都有一个用于 L-XXXXXXXX 在 [ AWS 服务配额控制台中查找其格式的 ID ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html#request-increase) 


| 服务 | 配额 (L-xxxxx) |  **Impact**  |  **ID (L-xxxxx) **  | 默认 | 
| --- | --- | --- | --- | --- | 
| IAM | 每个账户的角色数： | 可以限制账户中的群集或 IRSA 角色的数量。 | L-FE177D64 | 1000 | 
| IAM | OpenId 按账户连接提供商 | 可以限制每个账户的集群数量，IRSA 使用 OpenID Connect | L-858F3967 | 100 | 
| IAM | 角色信任策略长度 | 可以限制 IRSA 的 IAM 角色关联的集群数量 | L-C07B4B0D | 2,048 | 
| VPC | 每个网络接口的安全组数 | 可能会限制集群网络的控制或连接 | L-2AFB9258 | 5 | 
| VPC | 每个 VPC 的 IPv4 CIDR 块数 | 可以限制 EKS 工作节点的数量 | L-83CA0A9D | 5 | 
| VPC | 每个路由表的路由数 | 可能会限制集群网络的控制或连接 | L-93826ACB | 50 | 
| VPC | 每个 VPC 的活动 VPC 对等连接 | 可能会限制集群网络的控制或连接 | L-7E9ECCDB | 50 | 
| VPC | 每个安全组的入站或出站规则。 | 可能会限制集群网络的控制或连接，EKS 中的一些控制器会创建新规则 | L-0EA8095F | 50 | 
| VPC | 每个区域的 VPC 数 | 可以限制每个账户的集群数量或集群网络的控制或连接 | L-F678F1CE | 5 | 
| VPC | 每个区域的互联网网关数 | 可以限制每个账户的集群数量或集群网络的控制或连接 | L-A4707A72 | 5 | 
| VPC | 每个区域的网络接口数 | 可以限制 EKS 工作节点的数量或影响 EKS 控制平面 scaling/update 活动。 | L-DF5E4CA3 | 5000 | 
| VPC | 网络地址使用情况 | 可以限制每个账户的集群数量或集群网络的控制或连接 | L-BB24F6E5 | 64,000 | 
| VPC | 对等网络地址的使用情况 | 可以限制每个账户的集群数量或集群网络的控制或连接 | L-CD17FD4B | 128,000 | 
| ELB | 每个网络负载均衡器的侦听器数 | 可以限制对集群流入口的控制。 | L-57A373D6 | 50 | 
| ELB | 每个区域的目标组数 | 可以限制对集群流入口的控制。 | L-B22855CB | 3000 | 
| ELB | 每个 Application Load Balancer 的目标数 | 可以限制对集群流入口的控制。 | L-7E6692B2 | 1000 | 
| ELB | 每个网络负载均衡器的目标数 | 可以限制对集群流入口的控制。 | L-EEF1AD04 | 3000 | 
| ELB | 每个 Network Load Balancer 每个可用区的目标数 | 可以限制对集群流入口的控制。 | L-B211E961 | 500 | 
| ELB | 每个区域每个目标组的目标数 | 可以限制对集群流入口的控制。 | L-A0D0B863 | 1000 | 
| ELB | 每个区域的应用程序负载均衡器数 | 可以限制对集群流入口的控制。 | L-53DA6B97 | 50 | 
| ELB | 每个区域的经典负载均衡器数 | 可以限制对集群流入口的控制。 | L-E9E9831D | 20 | 
| ELB | 每个区域的网络负载均衡器数 | 可以限制对集群流入口的控制。 | L-69A177A2 | 50 | 
| EC2 | 运行 On-Demand 标准（A、C、D、H、I、M、R、T、Z）实例（作为最大 vCPU 数量） | 可以限制 EKS 工作节点的数量 | L-1216C47A | 5 | 
| EC2 | 所有标准（A、C、D、H、I、M、R、T、Z）竞价型实例请求（以最大 vCPU 数量计） | 可以限制 EKS 工作节点的数量 | L-34B43A08 | 5 | 
| EC2 | EC2-VPC 弹性 IP | 可以限制 NAT GW（进而限制 VPC）的数量，这可能会限制一个区域中的集群数量 | L-0263D0A3 | 5 | 
| EBS | 每个区域的快照数 | 可能会限制有状态工作负载的备份策略 | L-309BACF6 | 100000 | 
| EBS | 通用型 SSD（gp3）卷存储（单位 TiB） | 可以限制 EKS 工作节点或 PersistentVolume 存储的数量 | L-7A658B76 | 50 | 
| EBS | 通用型 SSD（gp2）卷存储（单位 TiB） | 可以限制 EKS 工作节点或 PersistentVolume 存储的数量 | L-D18FCD1D | 50 | 
| ECR | 已注册的存储库 | 可以限制集群中的工作负载数量 | L-CFEB8E8D | 100000 | 
| ECR | 每个存储库的镜像数 | 可以限制集群中的工作负载数量 | L-03A36CE1 | 20000 | 
| SecretsManager | 每个区域的秘密 | 可以限制集群中的工作负载数量 | L-2F66C23C | 500,000 | 

## AWS 请求限制
<a name="_aws_request_throttling"></a>

AWS 服务还实施请求限制，以确保它们保持性能并可供所有客户使用。与服务配额类似，每个 AWS 服务都有自己的请求限制阈值。如果您的工作负载需要快速发出大量 API 调用，或者您发现应用程序中存在请求限制错误，请考虑查看相应的 AWS 服务文档。

围绕配置 EC2 网络接口或 IP 地址的 EC2 API 请求在大型集群中或集群大幅扩展时可能会遇到请求限制。下表显示了我们看到的客户遇到请求限制的一些 API 操作。您可以在 EC2 关于速率限制的文档中查看 [ EC2 速率限制默认值和请求提高速率限制](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/throttling.html)的步骤。


| 变异动作 | Read-only 行动 | 
| --- | --- | 
| AssignPrivateIpAddresses | DescribeDhcpOptions | 
| AttachNetworkInterface | DescribeInstances | 
| CreateNetworkInterface | DescribeNetworkInterfaces | 
| DeleteNetworkInterface | DescribeSecurityGroups | 
| DeleteTags | DescribeTags | 
| DetachNetworkInterface | DescribeVpcs | 
| ModifyNetworkInterfaceAttribute | DescribeVolumes | 
| UnassignPrivateIpAddresses |  | 

## 其他已知限制
<a name="_other_known_limits"></a>
+  [Route 53 的速率限制也相当低，每秒向 Route 53 API 发出 5 个请求](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-requests)。如果您有大量域名需要通过外部DNS之类的项目进行更新，则可能会出现速率限制和域名更新延迟的情况。
  + 某些 [ Nitro 实例类型的卷连接限制为 28](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html#instance-type-volume-limits)，该限制在 Amazon EBS 卷、网络接口和 NVMe 实例存储卷之间共享。如果您的工作负载挂载了大量 EBS 卷，则可能会遇到使用这些实例类型可以实现的 Pod 密度的限制
  + 每个 Ec2 实例可以跟踪的最大连接数。[如果您的工作负载正在处理大量连接，则可能会出现通信失败或错误，因为已达到此最大值。](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-throttling)您可以使用`conntrack_allowance_available`和`conntrack_allowance_exceeded`[网络性能指标来监控 EKS 工作节点上跟踪的连接数量](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-network-performance-ena.html)。
  + 在 EKS 环境中，根据[上游指南，etcd 存储限制**为 ** 8 GiB。](https://etcd.io/docs/v3.5/dev-guide/limit/#storage-size-limit)请监控指标`apiserver_storage_size_bytes`以跟踪 etcd 数据库大小。您可以参考[警报规则](https://github.com/etcd-io/etcd/blob/main/contrib/mixin/mixin.libsonnet#L213-L240)`etcdBackendQuotaLowSpace``etcdExcessiveDatabaseGrowth`并设置此监控。