共计 931 个字符,预计需要花费 3 分钟才能阅读完成。
1. k8s pod 和 service 网络裸露
- 借助
iptables
的路由转发性能,买通 k8s 集群内的 pod 和 service 网络,与内部网络联通
# 查看集群的 pod 网段和 service 网段 | |
kubectl -n kube-system describe cm kubeadm-config | |
networking: | |
dnsDomain: cluster.local | |
podSubnet: 10.244.0.0/16 | |
serviceSubnet: 10.96.0.0/12 | |
# 内核模块 | |
sysctl -a | grep 'net.ipv4.ip_forward = 1' | |
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf | |
sysctl -p | |
# 在 k8s 节点 192.168.1.79 节点上开启转发 192.168.0.0/16 网段为服务器网段,利用 192.168.0.0/16 网段某个服务器作为路由器 | |
iptables -P FORWARD ACCEPT | |
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to-source 10.244.0.0/16 | |
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to-source 10.96.0.0/12 | |
# 这个不确定是否执行 | |
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE | |
# 测试,在 192.168.0.0/16 网段中找一个非 k8s 集群的服务器,加上路由,进行测试 | |
# 现找个 pod ip ping 一下是否通不通 | |
route add -net 10.244.0.0 netmask 255.255.0.0 gw 192.168.1.79 dev eth0 | |
# 加上这个路由之后,再测试看是否通 | |
# 为了能让办公人员的浏览器能够拜访到,须要再外围交换机上配置规定 | |
# 外围交换机 | |
route add -net 10.244.0.0 netmask 255.255.0.0 gw 192.168.1.79 dev eth0 | |
route add -net 10.96.0.0 netmask 255.240.0.0 gw 192.168.1.79 dev eth0 |
正文完
发表至: kubernetes
2023-09-25