问题描述
有两个(或多个)运行在不同节点上的pod,通过一个svc提供服务,如下:
root@master1:~# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
kubia-nwjcc 1/1 Running 0 33m 10.244.1.27 worker1
kubia-zcpbb 1/1 Running 0 33m 10.244.2.11 worker2
root@master1:~# kubectl get svc kubia
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubia ClusterIP 10.98.41.49 <none> 80/TCP 34m
当透过其他pod访问该svc时(使用命令k exec kubia-nwjcc -- curl http://10.98.41.49),出现了只能访问到和自己同处于一个节点的pod的问题,访问到其他节点上的pod时会出现command terminated with exit code 7的问题,如下:
正常访问到相同节点的pod
root@master1:~# kubectl exec kubia-nwjcc -- curl http://10.98.41.49
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 23 0 23 0 0 8543 0 --:--:-- --:--:-- --:--:-- 11500
You've hit kubia-nwjcc
无法访问其他节点的pod
root@master1:~# kubectl exec kubia-nwjcc -- curl http://10.98.41.49
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (7) Failed to connect to 10.98.41.49 port 80: No route to host
command terminated with exit code 7
本问题随机发生,如下:
root@master1:~# kubectl exec kubia-nwjcc -- curl http://10.98.41.49
You've hit kubia-nwjcc
root@master1:~# kubectl exec kubia-nwjcc -- curl http://10.98.41.49
command termi
Kubernetes中Flannel网络问题及解决

本文描述了在Kubernetes环境下,使用Flannel作为CNI时遇到的跨节点Pod通信问题。问题表现为通过Service访问Pod时,随机出现只能访问到同一节点Pod的情况。原因是由于VirtualBox双网卡配置,Flannel默认使用了NAT网卡,导致无法正确通信。解决方案是通过编辑Flannel的DaemonSet配置,指定使用Host-only网卡,并重启Flannel Pod,最终实现跨节点通信正常。
最低0.47元/天 解锁文章
6902

被折叠的 条评论
为什么被折叠?



