kubernetes ingress配置转发端口

Ingress配置转发端口本质Ingress配置转发端口本质,还是利用service nodePort能力,通过暴露ingress的本地端口来转发 。
Ingress默认不支持TCP or UDP services 。因此Ingress controller使用--tcp-services-configmap和--udp-services-configmap这两个配置达到转发端口的目的 。
(文中采用阿里云kubernetes v1.16.9)
检查一下这两个配置是否开启:
kubectl get deployment Nginx-ingress-controller -n kube-system -o yaml

kubernetes ingress配置转发端口

文章插图
 
如图所示,已经开启了,同时表明了,后面需要修改对应 tcp-services configmap
创建hello Tomcat创建一个 namespaces,这个namespaces跟后面的 deployment和service,还有tcp-services configmap都有关系 。
kubectl create ns dev部署一个tomat应用kubectl create -f deployment-hello.yaml
# cat deployment-hello.yaml apiVersion: extensions/v1beta1kind: Deploymentmetadata:name: hellonamespaces: devspec:replicas: 4template:metadata:labels:run: hellospec:containers:- name: helloimage: tomcat:8imagePullPolicy: Alwaysports:- name: httpcontainerPort: 8080创建一个service,kubectl create -f service-hello.yaml
#cat service-hello.yaml apiVersion: v1kind: Servicemetadata:name: hellolabels:name: hellonamespaces: devspec:clusterIP: "None"ports:- port: 8080targetPort: 8080protocol: TCPselector:run: helloingress-nginx-lb service修改 namespace 为 kube-system 下的 ingress-nginx-lb service:
注意:
port可以改成其他端口,比如18080
targetPort要跟后面的tcp-services configmap配置保持一致,都是8080
 
kubectl edit svc/nginx-ingress-lb -n kube-system- name: helloport: 18080protocol: TCPtargetPort: 8080
kubernetes ingress配置转发端口

文章插图
 
 
再去看这个nginx-ingress-lb,发现回自动给你添加一个nodePort: 32031 。
 
kubernetes ingress配置转发端口

文章插图
 
看看是不是配置成功kubectl get svc -n kube-system
kubernetes ingress配置转发端口

文章插图
 
修改 tcp-services configmap修改 namespace kube-system 下的 tcp-service configmap,添加配置:
kubectl edit configmap/tcp-services -n kube-systemdata:8080: dev/hello:8080在配置data之前,你需要一个deploy+service来
其中 configmap data 的格式为: <namespace/service name>:<service port>:[PROXY]:[PROXY]
kubernetes ingress配置转发端口

文章插图
 
通过阿里云提供的 EXTERNAL-IP,也就是 对应阿里云负载均衡的外网IP,即可访问:
http://EXTERNAL-IP:18080
 
同时检查一下阿里云对应的负载均衡,发现对应的端口已经自动监听了,不用再手工在页面上处理 。
kubernetes ingress配置转发端口

文章插图
 
 
kubernetes ingress配置转发端口

文章插图
 
 
 
参考
  1. ingress-nginx Exposing TCP and UDP https://blog.csdn.net/hxpJAVA1/article/details/86756970
  2. k8s ingress配置转发tcp流量 https://blog.csdn.net/w851685279/article/details/115911686
  3. nginx ingress controller 之 TCP service https://zhuanlan.zhihu.com/p/102857596
  4. kubernetes发布tomcat服务,通过deployment,service布署 https://www.cnblogs.com/pu20065226/p/10644272.html

【kubernetes ingress配置转发端口】


    推荐阅读