当前位置: 首页 > 知识库问答 >
问题:

带有UDP和TCP的AKS(kubernetes)服务

郎同化
2023-03-14

我的dockerized服务(webrtc服务器)同时使用TCP和UDP传输协议。我在Azure Kubernetes服务公司工作。如您所知,我们无法在Kubernetes中同时使用TCP和UDP proto创建LoadBalancer服务(更多信息请参见此处)

此外,我还尝试创建了两个服务:

  • 一个用于TCP端口
  • 一个用于UDP

用一个公共IP绑定它们,但得到:“确保负载平衡器”消息

唯一的解决方案是使用NodePort,但在Azure中它对我不起作用(连接超时)。

这里是我的服务YAML:

apiVersion: v1
kind: Service
metadata:
  name: mcu
spec:
  selector:
   app: mcu
  ports:
  - name: mcu
    nodePort: 30000
    port: 8080
    protocol: TCP
  - name: webrtc
    nodePort: 30003
    port: 10000
    protocol: UDP
  type: NodePort
  externalIPs:
  - <ext IP>

共有1个答案

习旻
2023-03-14

对混合TCP/UDP协议的支持取决于云提供商。例如,Azure支持它,但AKS在撰写本文时可能还没有支持它的版本。

不清楚是什么导致了连接超时,但只要您将Azure UDP负载均衡器指向30003节点端口,它就可以正常工作。您还可以在集群节点中本地测试将UDP通信发送到服务clusterip:10000

您还可以检查您的服务是否具有终结点:

$ kubectl describe svc <service-name>

或/与:

$ kubectl get ep
 类似资料:
  • 框架默认提供创建 TCP/UDP 服务的能力。只需要进行简易的配置,便可使用。 使用 TCP 服务 创建 TcpServer 类 <?php declare(strict_types=1); namespace App\Controller; use Hyperf\Contract\OnReceiveInterface; class TcpServer implements OnRecei

  • 根据它的文档,citrix-ingress似乎允许这样做,但我们有很多问题让它工作。 有没有什么我们可能错过的方法可以做到这一点?想要确保我们没有错过一些明显的东西。

  • 我已经编写了一个服务器-客户端(两个程序)结构,它工作正常。。。仅当使用TCP时。我的想法是使用TCP进行文本聊天传输(udp不可靠),但使用udp进行游戏数据包传输(是的,这是一种每秒30帧的动作游戏,所以我需要udp)。 但是,当我在客户端进程中与TCP建立连接时,我开始向服务器程序发送UDP数据包,并从服务器程序接收UDP数据包。客户端在单个线程中使用非阻塞套接字、UDP和TCP。这里没有多

  • null null 是否可以将来自负载均衡器的所有端口直接路由到Azure Kubernetes服务下的NGINX入口 对我的用例的其他建议

  • 本文向大家介绍TCP和UDP之间的区别,包括了TCP和UDP之间的区别的使用技巧和注意事项,需要的朋友参考一下 众所周知,TCP(传输控制协议)和UDP(用户数据报协议)都是使用最广泛的Internet协议,其中TCP是面向连接的-一旦建立连接,就可以双向发送数据。UDP是一种更简单的无连接Internet协议。使用UDP将多条消息作为数据包成块发送。现在,根据属性的特征,我们可以区分TCP和UD

  • UDP-TCP Bridge 是一个用C++实现的跨平台的协议转发器,用来实现在 UDP 的基础上实现 TCP 通讯。