0%

k8s-办公内网与k8s内网互通

网络拓扑

k8s集群的pod网段为179.10.0.0/16,svc的网段为179.20.0.0/16
办公网为18.16.0.0/16
k8s nat节点ip为18.16.200.149/32 宿主机ip段为18.16.200.0/24

办公网于k8s内网互通

目前线下环境迁移到k8s集群,运行在k8s内的微服务应用注册到nacos,注册的为本地办公网ip+port,但开发在本地办公电脑上启动服务,注册到nacos,注册信息是办公网络的IP与端口,因为办公网络与k8s集群内部网络相对隔离,导致服务之间调用异常。

添加路由中转机

选定k8s内的一台node节点专门作为路由,配置低一点没有关系, 禁止调度就行, test-worker-4作为本次的NAT机器

1
2
3
4
5
6
7
8
9
[root@test-master-1 ~]# kubectl get nodes 
NAME STATUS ROLES AGE VERSION
test-master-1 Ready etcd,master,worker 108d v1.18.8
test-master-2 Ready etcd,master,worker 108d v1.18.8
test-master-3 Ready etcd,master,worker 108d v1.18.8
test-worker-1 Ready worker 73d v1.18.8
test-worker-2 Ready worker 73d v1.18.8
test-worker-3 Ready worker 73d v1.18.8
test-worker-4 Ready,SchedulingDisabled worker 11d v1.18.8

开启nat节点的路由转发功能

test-worker-4节点执行

1
2
echo "net.ipv4.ip_forward = 1"  >> /etc/sysctl.conf
sysctl -p

设置转发规则

test-worker-4节点执行

1
2
iptables -t nat -A POSTROUTING -s 18.16.0.0/16 -d 179.20.0.0/16 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 18.16.0.0/16 -d 179.10.0.0/16 -j MASQUERADE

本地网络添加静态路由

本地的网络尽量是私网ip,在出口的路由骑上添加静态路由, 是在不知道的话就问下网络的同事

1
2
ip route 179.20.0.0 255.255.0.0 18.16.200.149
ip route 179.10.0.0 255.255.0.0 18.16.200.149