代码之家  ›  专栏  ›  技术社区  ›  Łukasz Baran

Kubernetes-使用UDP托管游戏服务器。如何将流量连接/路由到POD?

  •  1
  • Łukasz Baran  · 技术社区  · 7 年前

    前几天我一直在Azure容器服务上玩Kubernetes集群,目标是在上面托管虚拟游戏服务器。

    经过几天的实验和提问,我终于可以在单个节点上托管几个服务器,并通过客户端连接到它们。

    虽然有效,但我并不完全相信这是一个好的解决方案。虽然它可以自动化,但我不确定它在负载下是否可以扩展。

    1. 我需要等到pod创建完成。我可以假设需要什么端口,因为在7777端口上虚幻芳香打开,然后增加一个,直到找到一个。

    2. 创建pod后,我需要将NAT端口转发添加到负载平衡器(但在知道pod位于哪个节点之前,我无法这样做)。

    3. 我正在使用外部负载平衡器在特定的POD上路由流量。从库伯内茨内部这样做可能更好。

    必须满足以下几点:

    1. 最好将公共IP的数量保持在最低限度。

    通过UDP将POD直接公开给外部客户机的最佳方式是什么?端口转发并不是那么坏的选择(尽管我可以通过单个公共ip公开的POD数量有限,至少我这么认为)。 我想要实现的是将客户端直接连接到服务器,或者将客户端流量路由到特定的POD(即路由器->服务->POD场景是可以接受的,但间接性越小越好)。

    我读过: http://www.compoundtheory.com/scaling-dedicated-game-servers-with-kubernetes-part-1-containerising-and-deploying/

    1 回复  |  直到 7 年前
        1
  •  1
  •   Valentin Ouvrard    7 年前

    我知道Nginx-one支持UDP路由。

    因此,您可以使用负载均衡器IP公开Nginx入口,并创建UDP configmap直接在POD上路由。

    https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/udp