ingress-nginx设置tcp/udp转发
第一步,更改ingress-nginx的deployment启动参数,增加--tcp-services-configmap和--udp-services-configmap参数,开启tcp与udp的反对
containers:- args: - /nginx-ingress-controller - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
第二步,更改ingress-nginx的service,申明tcp和udp用的端口号
ports: - name: proxied-tcp nodePort: 30090 port: 9000 protocol: TCP targetPort: 9000 - name: proxied-udp nodePort: 30091 port: 9001 protocol: UDP targetPort: 9001 - name: nginx port: 9005 protocol: TCP targetPort: 9005
第三步,定义configmap,格局为<ingress-controller-svc-port>:"<namespace>/<service-name>:<port>",例如上面配置的data第一行示意将default命名空间下的example-go服务的8080端口映射到ingress-controller service的9000端口,即可通过ingress-controller的service ip加9000端口拜访到example-go服务
apiVersion: v1kind: ConfigMapmetadata: name: tcp-services namespace: ingress-nginxdata: 9000: "default/example-go:8080" 9005: "default/nginx:80"