首页 > 解决方案 > 使用 UDP 和 TCP 的 AKS(kubernetes)服务

问题描述

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

另外,我尝试创建两个服务:

将它们与一个公共 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>

标签: kubernetesazure-aks

解决方案


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

不清楚是什么给了你,connection timeout但只要你将 Azure UDP 负载均衡器指向30003NodePort,它应该可以正常工作。您还可以在向服务发送 UDP 流量的集群节点中进行本地测试ClusterIP:10000

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

$ kubectl describe svc <service-name>

或/和:

$ kubectl get ep

推荐阅读