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

时间:2018-10-22 12:57:06

标签: kubernetes azure-aks

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

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

  • 一个用于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>

2 个答案:

答案 0 :(得分:1)

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

不清楚是什么为您提供了connection timeout,但是只要您将Azure UDP负载平衡器指向30003 NodePort,它就可以正常工作。您还可以在将UDP流量发送到服务ClusterIP:10000

的群集节点中进行本地测试。

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

$ kubectl describe svc <service-name>

或/和:

$ kubectl get ep

答案 1 :(得分:0)

似乎AKS doesnt support NodePort和AKS服务类型LoadBalancer无法在同一服务上同时使用TCP和UDP协议