Kubernetes Service doc显示了以下有关每个NLB服务如何更新节点安全组的说明。
不幸的是,我有一个具有3个不同CIDR的VPC。这意味着对于服务上的每个端口,将4个新规则添加到节点的安全组中。有一个团队拥有5个端口的NLB服务,这意味着它将导致20条新规则添加到节点的安全组中。其他团队通常具有2个端口,这会将8条规则添加到节点的安全组中。最终结果是,有时我们可以达到一个安全组允许的最大64条规则。
为此要设计什么主意,以便团队可以根据需要创建尽可能多的带有端口的NLB服务?
答案 0 :(得分:1)
EKS documentation 说明了这一点。
<块引用>对于您创建的每个 NLB,Amazon EKS 将一个入站规则添加到 客户端流量的节点安全组和每个负载的一个规则 用于健康检查的 VPC 中的平衡器子网。服务的部署 如果 Amazon EKS 尝试创建规则,LoadBalancer 类型可能会失败 超过允许的最大规则数量的配额 安全组。有关更多信息,请参阅 Amazon 中的安全组 Amazon VPC 用户指南中的 VPC 配额。考虑以下 尽量减少超过最大数量的可能性的选项 安全组的规则。
请求增加每个安全组配额的规则。更多 信息,请参阅在服务配额中请求增加配额 用户指南。
使用创建网络负载均衡器,而不是实例目标。和 IP 目标,规则可能会为相同的目标端口共享。 可以使用注释手动指定负载均衡器子网。 有关详细信息,请参阅 GitHub 上的注释。
使用 Ingress 而不是 LoadBalancer 类型的 Service 来发送 您的服务的流量。 AWS 应用程序负载均衡器 (ALB) 需要比 NLB 更少的规则。 ALB 也可以跨 多个入口。有关更多信息,请参阅应用程序负载 在 Amazon EKS 上进行平衡。
将您的集群部署到多个帐户。
如果这些选项都不适合您,并且您还有 ALB,您可以最小化这些 ALB 的规则,强制它们使用特定的安全组,而不是将它们的规则添加到节点的安全组。注释是 service.beta.kubernetes.io/aws-load-balancer-security-groups
。这样做,您将多个规则替换为一个,为 NLB 规则留出更多空间。