k8s pod访问不通外网问题排查

环境概况

自建k8s集群,主机操作系统ubuntu16.04,k8s版本v1.14, 集群网络方案calico-3.3.6.

worker节点数50+,均为GPU物理服务器,服务器类型异构,如Nvidia P4/T4/V100等。

异常现象

故障起因是k8s集群新增加了一台worker节点机器server-n1,该机器上带有8张网卡eth0~eth7,

其中eth0~eth3没有配置ip地址,eth4~eth7配置了ip地址,默认使用eth4网卡。

调度到server-n1节点上的pod,无法访问外网。调度到其他node节点上的pod均能正常访问外网。

根据故障现象,初步确定是server-n1服务器的配置问题。

排查过程

kubectl get pod -n kube-system -o wide|grep server-n1

发现该节点上的calico-node状态异常,即只有1/2 个容器在Running

kubectl describe pod -n kube-system calico-node-5txhs

主要异常信息如下截图

kubectl logs -n kube-system calico-node-5txhs

发现calico-node组件自动侦测到的网卡为eth7,而不是默认使用的eth4.

至此已定位到问题原因。

解决方法

由于eth5~eth7网卡实际没有被使用,关闭eth5~eth7使calico-node侦测到eth4.

1.在/etc/network/interfaces文件内注释冗余网卡

2.关闭eth5~eth7

ifconfig eth5 down

ifconfig eth6 down

ifconfig eth7 down

ip addr flush eth5

ip addr flush eth6

ip addr flush eth7

3.删除重建该机器上的calico-node

kubectl delete pod -n kube-system calico-node-5txhs

原文地址:https://www.cnblogs.com/abcdef/p/11651974.html

时间: 2024-10-17 01:02:04

k8s pod访问不通外网问题排查的相关文章

完美解决K8s中的Pod无法解析外网域名问题

系统:Ubuntu 18.04.02K8s版本:1.13.4 故障现象:安装KubeDNS后,Pod内无法ping通外网域名,访问外网IP.K8s内部域名或者IP均正常.??原因分析,查看Pod中的resolv.conf: kubectl exec busybox -- cat /etc/resolv.conf nameserver 10.96.0.10 search default.svc.cluster.local svc.cluster.local cluster.local option

判断访问者是内网访问还是外网访问

//域登录  判断是内网还是外网请求 public function regip($ip){ $ip = ip2long($ip); $net_a = ip2long('10.255.255.255') >> 24; //A类网预留ip的网络地址 $net_b = ip2long('172.31.255.255') >> 20; //B类网预留ip的网络地址 $net_c = ip2long('192.168.255.255') >> 16; //C类网预留ip的网络地

ping得通外网IP,ping不通外网域名的解决办法

这个办法是最有效的. windows的winsock损坏后,会造成能ping通外网IP,使用nslookup命令能够解析域名,却ping不通外网域名的情况. 在网上搜索了一下,发现有的网友说是微软补丁造成的,卸载那个补丁就可以了,或者说要求用360急救箱修复就可以了. 本人实践后,发现以上方法均行不通,不能解决这个问题.因为是win7系统,使用常见的winsockfix修复软件也不能修复 . 最后发现,使用[netsh winsock reset]命令,恢复winsock目录,重启后,轻松的就解

ping不通外网的处理方法

LINUX虚拟机ping不通外网:ping 不通IP地址: ping 119.75.217.56  #百度IP地址无法ping通检查网关是否设置正确:/etc/sysconfig/network   GATEWAY=192.168.1.1 ping 不通域名:  ping www.baidu.com检查域名是否设置正确:/etc/resolv.conf增加:nameserver    192.168.1.1

虚拟机上ping不通外网, 但是可以访问外网(如使用curl www.baidu.com能返回内容)

在虚拟机中输入 ping www.baidu.com, 可能出现如下几种报错 1.?ping: unknown host www.baidu.com? 2.PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data. 以上两种都是?没有配置正确的DNS服务器 解决:? 在window上打开命令窗口, 输入 ipconfig /all? ? ? 找到你当前连接上网的地方, 因为我电脑是连接无线 ,所以在无线网络连接区域下 , 如果是连接

Centos Ping不通外网

安装完成Vm,Centos6.5,设置了网络: 1.VM虚拟网络,采用桥接模式. 2.Centos里各种 设置ifcfg-eth0中的GETWAY,ADDIP等等 vim /etc/sysconfig/network-scripts/ifcfg-eth0 设置network中的GETWAY,HOSTNAME, vim /etc/sysconfig/network 修改DNS vim /etc/resolv.conf 然后各种重启停用 网络 service network restart 系统 s

服务器 | 服务器能访问,外网访问不了的解决办法

在使用华为云服务器的时候,域名解析了仍然访问不了,后来发现是云主机设置了白名单机制,需要把端口号加入白名单. 参考资料: 服务器能访问外网访问不了的情况,具体表现如下: 1.服务器环境启动正常,PHP探针文件可见,域名解析成功,服务器上输入域名可访问对应网站但外网无法访问. 2.本地局域网上搭建服务器环境,局域网IP已绑定,搭建环境那台机器访问正常局域网内其它机器均无法访问. 以上两种情况都是由windows自带的防火墙已开启但是没有添加80端口造成的 解决办法: 1.开始---设置---控制面

redhat ping不通外网的解决办法

ping自己和网关都能ping通就是无法ping通外网例如百度: [[email protected] ~]# ping www.baidu.com ping: unknown host www.baidu.com 出现这种情况是因为没有配置dns服务器,无法做域名解析 修改 /etc/resolv.conf文件添加  nameserver  192.168.37.2 重启网络 service network restart 如果还是不行,报错: [[email protected] ~]# p

vmware安装centos,ping不通外网(公司绑定mac和ip)

在主机绑定mac和ip才能连网的情况下,vmware改用NAT模式可连接外网 本机网卡配置信息: 在VMware中,打开"编辑"---> "虚拟网络编辑器",选择VMnet8 修改前 NAT设置 DHCP设置 修改之后 NAT设置 DHCP设置 保存确定