首页 > 解决方案 > AWS EKS - 如何解决由 NLB 规则导致的 RulesPerSecurityGroupLimitExceeded

问题描述

我有带有三个私有子网(10.176.128.0/20、10.176.144.0/20、10.176.160.0/20)和三个公共子网(10.176.0.0/20、10.176.16.0/20、10.176.32.0/20)的 av VPC . 所有私有子网都有标签 kubernetes.io/role/internal-elb=1,公共子网有标签 kubernetes.io/role/elb=1。

我在托管节点组中运行所有工作节点,AWS eks 负责为集群创建默认安全组。那个安全组就是我稍后要提到的。

我的 kubernetes 集群中有两个命名空间,test 和 stage,在每个命名空间中我有 3 个带有负载均衡器的服务,它们在每个命名空间中公开 8 个端口。负载均衡器的类型为 nlb。

现在问题来了,每个带有负载均衡器的服务在我的节点的安全组中为每个端口创建 4 个规则,一个用于它所在的每个子网,一个用于所有流量 (0.0.0.0/0)。8 * 4 * 2 = 64,根据 AWS,每个安全组的最大规则数为 60,因此当我要创建最后一个 LB 时,我收到有关 RulesPerSecurityGroupLimitExceeded 的错误。

正如我所看到的,有两种方法可以解决这个问题,或者将更多的安全组附加到我的节点上,或者以某种方式进行配置,这样每个端口创建的规则就会更少。事实是,实际上一条规则就足够了,因为 0.0.0.0/0 也将允许我的所有子网。另一种选择可能是我在设计中做错了什么。添加更多我尝试过但失败的安全组的第一个选项仍然尝试将规则添加到已经满的安全组。

标签: amazon-vpcamazon-eks

解决方案


我们也在解决这个问题。您可以做的一件事是在 AWS 控制台中请求增加每个安全组的规则配额。我觉得那样只会稍微推迟这个问题。


推荐阅读