1. nginx 版本要高,1.12 以上,且有 --with-stream 模塊,測試地址: 10.16.0.95 (公網地址 121.251.110.41 ) 2. 物理機 nginx 必須將以下配置添加在nginx.conf中,http 模塊外 stream { upstream udpserver { server 10.16.0.237:30000; server 10.16.0.238:30000; server 10.16.0.239:30000; } server { listen 27000 udp; proxy_responses 1; proxy_timeout 20s; proxy_pass udpserver; } } 3. 將域名A 記錄綁定此服務器地址,不用配置 server_name,因為udp 不支持 server_name 4. k8s ingress 指向 svc , deployment 要開啟容器的udp 端口 deployments ports: - containerPort: 7000 name: http1 protocol: UDP svc : ports: - name: im-port nodePort: 30000 port: 7000 protocol: UDP targetPort: 7000 selector: app: im-server release: stabel sessionAffinity: None type: NodePort 測試: nc -uvz 121.251.110.41 27000 注釋: 相當於是直接外網ip udp 27000 轉向k8s svc 30000,此svc 為 nodeport 類型,占用宿主機端口