使用UDP和TCP的AKS(kubernetes)服务

使用UDP和TCP的AKS(kubernetes)服务,kubernetes,azure-aks,Kubernetes,Azure Aks,我的停靠服务(webrtc服务器)同时使用TCP和UDP传输协议。我正在使用Azure Kubernetes服务。正如您所知,我们无法在Kubernetes中同时使用TCP和UDP协议创建LoadBalancer服务(更多信息) 此外,我还尝试创建了两个服务: 一个用于TCP端口 一个用于UDP 将它们绑定到一个公共IP,但会收到“确保负载平衡器”消息 唯一的解决方案是使用NodePort,但在Azure中它对我不起作用(连接超时) 以下是我的服务: apiVersion: v1 kind:

我的停靠服务(webrtc服务器)同时使用TCP和UDP传输协议。我正在使用Azure Kubernetes服务。正如您所知,我们无法在Kubernetes中同时使用TCP和UDP协议创建LoadBalancer服务(更多信息)

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

  • 一个用于TCP端口
  • 一个用于UDP
将它们绑定到一个公共IP,但会收到“确保负载平衡器”消息

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

以下是我的服务:

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>
apiVersion:v1 种类:服务 元数据: 名称:mcu 规格: 选择器: 应用程序:mcu 端口: -名称:mcu 节点端口:30000 端口:8080 协议:TCP -名称:webrtc 节点端口:30003 港口:10000 协议:UDP 类型:节点端口 外部性: -
对混合TCP/UDP协议的支持取决于云提供商。例如,支持它,但AKS在撰写本文时可能没有支持它的版本

不清楚是什么给了你一个
连接超时
,但只要你将Azure UDP负载平衡器指向
30003
节点端口,它就可以正常工作。您还可以在向服务发送UDP流量的群集节点中本地测试群集IP:10000

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

$ kubectl describe svc <service-name>

AKS和AKS服务类型LoadBalancer似乎不能在同一服务上同时使用TCP和UDP协议

请共享一个链接,指向如何仅为TCP进行设置?我正在尝试解决一个类似的问题。不遵循您所说的链接,但对于TCP服务,我公开了两个类型为LoadBalancer的TCP端口,对于UDP-相同,但是使用
loadBalancerIP:
@TimBikbaev:你是让它工作了还是找到了替代方案-请更新这里…我也有同样的问题…@HrishikeshKumar我用haproxy在节点端口上完成了这项工作-丑陋的解决方案,但唯一适用于methanks的解决方案,已经尝试过了-NodePort连接在EKS中运行良好,但是,使用AKS-我无法在worker上远程登录端口,已经重新检查了网络规则,似乎您将无法远程登录到UDP端口,因为远程登录使用TCP。你将不得不使用类似netcat的东西:
nc-zuv
我知道,我只远程连接TCP端口
$ kubectl get ep