物理機 nginx udp 轉發至k8s ingress (udp)


 

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 類型,占用宿主機端口

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM