【发布时间】:2019-12-25 00:04:20
【问题描述】:
我有一个用例,我需要设置一个 AWS 网络负载均衡器来侦听大约 20,000 个不同的高端口 (30000+)。 NLB 需要位于一组目标节点(EC2 实例)的前面,并将来自 NLB 正在侦听的端口的流量路由到其中一个 EC2 实例上的同一端口(所有 EC2 实例都将侦听所有端口,所以 EC2 实例之间的循环是完全可以的)。例如,request->NLB:32355->{one of any instance}:32355。
我发现我可以创建 TargetGroups,它允许我指定一组实例以及它们应该可以访问的端口。但是,我不清楚如何将 NLB 上的端口与其中一个实例上的端口相关联。例如,我需要将 NLB 上的端口 32355 发送到任何 EC2 实例上的端口 32355,但仅限于该端口,对于我正在侦听的所有其他 19,999 个端口也会发生同样的事情。
进一步的上下文:这是一个 Kubernetes 集群,在 NLB 后面有一堆节点,这些节点暴露了 NodePort。我需要通过 NLB 到达那些 NodePort。在关于在 k8s 上处理此问题的不同方法的建议出现之前:相信我,我们已经考虑过了,全局 LB-> 节点端口选项是我们最好的选择。
额外问题:NLB 后面的节点数量是有弹性的,可以随时扩大或缩小。是否有通过标签或其他方式的动态方式来确保 TargetGroups 包含我需要的所有节点?
【问题讨论】:
标签: amazon-web-services load-balancing aws-load-balancer