物理机 nginx udp 转发至k8s ingress (udp)

Posted lixinliang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了物理机 nginx udp 转发至k8s ingress (udp)相关的知识,希望对你有一定的参考价值。

 

1. nginx 版本要高,1.12 以上,且有 --with-stream 模块,测试地址: 10.4.17.68
2. 物理机 nginx 必须将以下配置添加在nginx.conf中,http 模块外 
stream { 
  upstream udpserver  {
         server 10.16.0.237:80; (k8s ingress地址) 
    }
     server {
          listen 80 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: http1
         port: 7000
         protocol: UDP
         targetPort: 7000 
 ingress:
   serviceName: im-server-svc 
   servicePort: 7000

  

 

以上是关于物理机 nginx udp 转发至k8s ingress (udp)的主要内容,如果未能解决你的问题,请参考以下文章

k8s1.20.15 部署ingress-nginx 与测试

k8s关于服务

使用Nginx转发TCP/UDP数据

在K8S的Ingress中支持物理机上部署的程序

K8S基于ingress-nginx实现灰度发布

k8s nginx 入口重写目标注释未按预期工作