Amazon web services AWS UDP负载平衡与src ip保护

Amazon web services AWS UDP负载平衡与src ip保护,amazon-web-services,udp,load-balancing,Amazon Web Services,Udp,Load Balancing,我在AWS上有一个k8s集群,它公开了一个DNS端点。这意味着它需要一个静态IP和端口53/UDP。我们还希望,客户机的原始源ip将保留给接受请求的k8s服务。我很难找到执行它的负载平衡器。现在,我公开了一个带有IP的节点 有什么想法吗 此时,AWS中没有支持UDP负载平衡的AWS负载平衡器 目前有3种类型的AWS负载平衡器: 应用负载均衡器 相当复杂的第7层负载平衡器,因此只支持TCP 您将无法获得所需的静态IP 这意味着UDP无法工作,并且您没有静态IP 网络负载均衡器 在第4层(传

我在AWS上有一个k8s集群,它公开了一个DNS端点。这意味着它需要一个静态IP和端口53/UDP。我们还希望,客户机的原始源ip将保留给接受请求的k8s服务。我很难找到执行它的负载平衡器。现在,我公开了一个带有IP的节点


有什么想法吗

此时,AWS中没有支持UDP负载平衡的AWS负载平衡器

目前有3种类型的AWS负载平衡器:

  • 应用负载均衡器
    • 相当复杂的第7层负载平衡器,因此只支持TCP
    • 您将无法获得所需的静态IP
    • 这意味着UDP无法工作,并且您没有静态IP
  • 网络负载均衡器
    • 在第4层(传输)上工作的高性能负载平衡器
    • NLB有一个静态IP地址
    • 静态IP,但没有UDP
  • 经典负载平衡器
    • 具有某些第7层功能的第4层负载平衡器
    • 无静态IP
    • 既不支持静态IP,也不支持UDP

这使您可以选择构建自己的负载平衡器。如果您尝试这样做,我建议您设置多个负载平衡器实例以实现高可用性。然后,您可以使用Route 53作为前面的原始负载平衡器,它还可以执行运行状况检查。在这种情况下,你必须自己处理缩放和类似的事情

莫里斯的回答是正确的

但是,有一种方法可以通过运行t3.nano ec2 linux实例来避免这个问题,该实例将为您进行负载平衡

你有责任自己扩展它,但在紧要关头它是有效的

只需将以下内容添加到Userdata中(下面的cloudl示例)


我希望这会有所帮助,我在统计模块中遇到了一些问题,但是使用--every 2==>--every 1 100%工作,我对这个解决方案很满意。

AWS网络负载平衡器现在支持UDP

UserData:
        Fn::Base64:
          !Sub |
            #!/bin/bash
            echo 1 > /proc/sys/net/ipv4/ip_forward
            service iptables start
            iptables -t nat -A PREROUTING -p udp --dport 53 -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination ${instance0.PrivateIp}:53
            iptables -t nat -A PREROUTING -p udp --dport 53 -m statistic --mode nth --every 1 --packet 0 -j DNAT --to-destination ${instance1.PrivateIp}:53
            iptables -t nat -A PREROUTING -p tcp --dport 53 -m state --state NEW -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination ${instance0.PrivateIp}:53
            iptables -t nat -A PREROUTING -p tcp --dport 53 -m state --state NEW -m statistic --mode nth --every 1 --packet 0 -j DNAT --to-destination ${instance1.PrivateIp}:53
            iptables -t nat -A POSTROUTING -p udp --dport 53 -j MASQUERADE
            iptables -t nat -A POSTROUTING -p tcp --dport 53 -j MASQUERADE
            service iptables save