【K8s】【问题排查】k8s只能本地服务器访问服务,其他节点无法访问服务
出现原因:
问题描述:k8s部署服务之后,只能在Pod所在的节点通过node ip+ 对外暴露的端口请求;无法使用CLUSTER-IP+端口访问。也不能在其他Node节点通过Pod所在的节点通过node ip+ 对外暴露的端口请求;
主机名与IP对应情况:
主机名 | IP |
---|---|
192.168.199.201 | k8s-01 |
192.168.199.202 | k8s-02 |
192.168.199.203 | k8s-03 |
服务部署情况:
kubectl get svc
#显示
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-dep1 NodePort 10.10.42.233 <none> 80:30692/TCP 24s
kubectl get pods -o wide
#显示
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-dep1-9bcf54c77-l8wz7 1/1 Running 0 8m38s 10.122.165.234 k8s-03 <none> <none>
通过上述内容,我们不难发现。服务nginx-dep1部署在k8s-03节点,IP为192.168.199.203。
地址请求测试
服务器 | 请求地址 | 是否成功 |
---|---|---|
192.168.199.201、192.168.199.202、192.168.199.203 | 10.10.42.233 | 失败 |
192.168.199.201、192.168.199.202 | 192.168.199.203:30692 | 失败 |
192.168.199.203 | 192.168.199.203:30692 | 成功 |
报错信息:
curl: (7) Failed connect to 192.168.199.203:30692; Connection timed out
排查过程:
- 排查是否关闭防火墙
检查已经关闭 - 查找Kubernetes相关资料发现,node节点有请求转发,我们需要查看是否开启请求转发
iptables --list | grep 'Chain FORWARD'
#显示
Chain FORWARD (policy DROP)
出现Chain FORWARD (policy DROP)表示请求转发被关闭。需要开启。
解决方案:
iptables -P FORWARD ACCEPT
#为了防止重启再次关闭,填写配置
echo net.ipv4.ip_forward=1 >>/etc/sysctl.conf
验证:
iptables --list | grep 'Chain FORWARD'
#显示
Chain FORWARD (policy ACCEPT)
原文地址:https://blog.csdn.net/lilinxi001/article/details/140138272
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!