-
自建nginx-ingress 或者 云服务商的nginx-ingress 插件部署好后 默认会在 namespace 下生成tcp/udp 转发 configmap 配置资源,我们要做是修改这个配置文件和在nginx-ingress的svc添加转发端口。
-
cm名称一般是:xxxx-ingress-nginx-tcp 或者 xxx-tcp-services
示例: nginx-ingress 代理MongoDB 27017 端口。
1、修改tcp-services configmap,添加我们需要配置的TCP转发规则
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: ingress-nginx
data:
27017: "default/mongodb:27017" ##将27017端口流量转发到default namespace 下的mongodb:27017
2、在nginx-ingress的 service 内配置添加我们暴露的TCP端口
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 80
protocol: TCP
- name: https
port: 443
targetPort: 443
protocol: TCP
- name: 27017-mongodb ##添加下面的配置即可
port: 27017
targetPort: 27017
protocol: TCP
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx