我正在GKE / Kubernetes中运行一个服务,这个服务公开了一个星形IP地址的单个UDP端口。 (我已经在GCE中提供了一个临时的静态IP地址。)如果我按如下方式部署它,那么服务是可以访问的。
spec: type: LoadBalancer loadBalancerIP: <static-ip-address>
但是,我不打算运行我的服务的多个副本,我甚至不确定GKE的负载平衡器是否可以与UDP协同工作,所以我想尝试一下。
下面的替代configuration还没有工作。 有了它,服务出现了,但在一个不同的IP地址,因此不能从外部到达所需的。
spec: type: NodePort externalIPs: - <static-IP-address>
那么,在没有负载平衡器的情况下,在“自己”的静态IP地址上运行一个外部可见的服务,如果可以的话,又如何呢?
更新进一步的进展表明,工作平衡器也可以与UDP协同工作,但似乎仍然是多余的。
一个L3 / 4负载均衡器将传入UDP数据包,并select一个后端发送它们。 如果你只有一个后端,那么所有的数据包将在那里结束。 一旦你有多个后端,那么你将需要了解负载平衡器是否平衡分组stream(基于{source ip,dest ip,source port,dest port,protocol}的五元组)。 您应该阅读本节以了解GCP的UDP负载平衡如何工作。