使用UDP和TCP的AKS(kubernetes)服务
我的停靠服务(webrtc服务器)同时使用TCP和UDP传输协议。我正在使用Azure Kubernetes服务。正如您所知,我们无法在Kubernetes中同时使用TCP和UDP协议创建LoadBalancer服务(更多信息) 此外,我还尝试创建了两个服务:使用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:
- 一个用于TCP端口
- 一个用于UDP
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