【发布时间】:2020-12-08 05:44:05
【问题描述】:
我有一个带有三个私有子网(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)的 VPC /20)。所有私有子网都有标签 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-vpc amazon-eks