opsnull / follow-me-install-kubernetes-cluster

和我一步步部署 kubernetes 集群
Other
7.39k stars 2.9k forks source link

IPVS转发后之前配置的iptables没有生效? #647

Closed minicoder1024 closed 1 year ago

minicoder1024 commented 1 year ago

文档版本 K8S 版本:v1.16.6

现象描述

因为3台机器不在一个内网环境下,通过配置iptables模拟内网访问环境。

sudo iptables -t nat -A OUTPUT -d 172.22.28.65 -j DNAT --to-destination 120.25.209.54 sudo iptables -t nat -A OUTPUT -d 172.26.61.22 -j DNAT --to-destination 121.199.162.180

以下是机器信息: k8s-master (公) 120.77.12.148 (内)172.22.28.26 k8s-node1 (公) 120.25.209.54 (内) 172.22.28.65 k8s-node2 (公) 121.199.162.180 (内) 172.26.61.22

配置完后,可以通过内网ip来ping通。 参照文档教程进行安装,使用的是docker+flannel的方式。安装后pod可以正常running。 image

SVC如下: image

访问k8s的svc:10.254.0.1:443 通过查看ipvs转发情况可以,发现只有转发到本机时可以响应,请求转发到非本机的两台机器时没有响应。 curl -s --cacert /opt/k8s/work/ca.pem --cert /opt/k8s/work/admin.pem --key /opt/k8s/work/admin-key.pem https://10.254.0.1:443/version

但是如果直接访问172.22.28.26:6443、172.22.28.65:6443、172.26.61.22:6443都可以正常响应。 image

问题表现像是经过ipvs转发后,之前配置的iptables没有生效。

请求大佬解惑,多谢~

描述问题的现象。

minicoder1024 commented 1 year ago

image 以上是172.22.28.26上面ipvsadm转发统计。可以看到转发到非本机时,都没有回包。

minicoder1024 commented 1 year ago

image 最后是通过设置--advertise-address为外网ip解决的。