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
文章插图
如图所示,已经开启了,同时表明了,后面需要修改对应 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: hello
ingress-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
文章插图
再去看这个nginx-ingress-lb,发现回自动给你添加一个nodePort: 32031 。
文章插图
看看是不是配置成功kubectl get svc -n kube-system
文章插图
修改 tcp-services configmap修改 namespace kube-system 下的 tcp-service configmap,添加配置:
kubectl edit configmap/tcp-services -n kube-system
data:8080: dev/hello:8080
在配置data之前,你需要一个deploy+service来其中 configmap data 的格式为: <namespace/service name>:<service port>:[PROXY]:[PROXY]
文章插图
通过阿里云提供的 EXTERNAL-IP,也就是 对应阿里云负载均衡的外网IP,即可访问:
http://EXTERNAL-IP:18080
同时检查一下阿里云对应的负载均衡,发现对应的端口已经自动监听了,不用再手工在页面上处理 。
文章插图
文章插图
参考
- ingress-nginx Exposing TCP and UDP https://blog.csdn.net/hxpJAVA1/article/details/86756970
- k8s ingress配置转发tcp流量 https://blog.csdn.net/w851685279/article/details/115911686
- nginx ingress controller 之 TCP service https://zhuanlan.zhihu.com/p/102857596
- kubernetes发布tomcat服务,通过deployment,service布署 https://www.cnblogs.com/pu20065226/p/10644272.html
【kubernetes ingress配置转发端口】
推荐阅读
- 6张超级漂亮又实用的Kubernetes架构图
- 华为交换机配置跨网段通过vlanif通信,二层隔离三层通信
- Maven配置多个仓库共同使用的方法
- 买电脑,应该关心的6个配置!哪种电脑不能买?
- linux-centos网络配置bond
- Centos6下网卡启动、配置ifcfg-eth0教程
- 配置与 Hyper-V 虚拟机的远程桌面连接
- Nginx可视化配置神器
- 华为,H3C和锐捷:一起学习如何配置VRRP
- Kubernetes 原生 CI/CD 构建框架 Argo