k8s基于flannel VXLAN模式网络无法跨主机ping通其他节点上pod

简介: 基于云ECS搭建的k8s,通常网络问题需要从网络配置,路由表、iptables 规则 以及FDB配置去判断问题,另外需要注意的是阿里云有一层企业安全组配置会对网络有影响,遇到配置问题都正常需要从安全组的角度去考虑了

背景

基于阿里云自己手动搭建了几次k8s集群,采用flannel VXLAN 构建的Overlay覆盖网络, (关闭了安全组,route路由表设置正常 iptables规则都开启Accept ,主机上ip_forward功能正常开启)均出现k8s跨节点 pod网络不通,k8s集群中宿主机无法ping通跨主机的pod id。
备注:(网络上也有类似问题,大多数是通过iptables转发是不是有限制之类的解决,不生效)

两台节点k8s集群:

宿主机ip地址为:
10.136.1.251 flannel 分配ip 网段为10.244.0.0/24
10.136.1.252 flannel 分配ip 网段为 10.244.1.0 /24

大致现象

1、宿主机之间网络是通的
image.png

image.png
2、宿主机可以 ping 通部署在当前主机上的pod ,去ping 部署在其他宿主机pod ip 不通

image.png

问题排查

  • ifconfig配置 是否有问题

节点一

image.png

节点二

ifconfig配置

image.png

网段配置基本是正常的,cni0、flannel.1 、eth0 网络设备正常启动 ,都已经分配了正常的ip 子网这块也都配置正常。

  • 查看宿主机路由是否正常

    节点一路由表:

image.png
节点二路由表:
image.png

flannel路由配置正常

  • iptables规则是否配置正常

节点一:
image.png

节点二:

image.png

iptable 规则配置没问题,基本都是accept

  • 网络抓包

使用tcpdump 分别抓去flannel.1、eth0 网卡,发现数据包从eth0出去后 没有响应 对应节点并没有收到包

问题结论:

在排查过程中:

  • flannel.1网段设置正确 ifconfig。
  • route -n路由表配置正确
  • iptable -L -N查看 没有相关Deny
  • FDB都正常
    使用tcpdump 分别抓去flannel.1、eth0 网卡,发现数据包从eth0出去后 没有响应 对应节点并没有收到包

,因此预计到是云服务厂商安全组设置的问题,在传输层被拦截了,最终定位到是阿里云服务器企业安全组配置的问题,在传输层就进行了拦截,导致发出去的包没有回来被deny了 ,因此这块去开启安全组就解决了问题。

附录,这次排查问题积累了不少k8s网络经验,有相关问题的朋友可以留言咨询,大家一起讨论

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
4月前
|
网络协议 Linux 虚拟化
配置VM网络:如何设定静态IP以访问主机IP和互联网
以上就是设定虚拟机网络和静态IP地址的基本步骤。需要注意的是,这些步骤可能会因为虚拟机软件、操作系统以及网络环境的不同而有所差异。在进行设定时,应根据具体情况进行调整。
425 10
|
9月前
|
Kubernetes 数据安全/隐私保护 容器
K8s中Flannel网络插件安装提示forbidden无权限的解决方法
总的来说,解决“forbidden无权限”的问题,需要从权限和配置两个方面来考虑。只有当用户或者服务账户有足够的权限,且Flannel的配置文件设置正确,才能成功地安装Flannel。希望这个解答能够帮助你解决问题。
417 13
|
网络协议 网络虚拟化 网络架构
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
492 150
|
11月前
|
Kubernetes Shell Windows
【Azure K8S | AKS】在AKS的节点中抓取目标POD的网络包方法分享
在AKS中遇到复杂网络问题时,可通过以下步骤进入特定POD抓取网络包进行分析:1. 使用`kubectl get pods`确认Pod所在Node;2. 通过`kubectl node-shell`登录Node;3. 使用`crictl ps`找到Pod的Container ID;4. 获取PID并使用`nsenter`进入Pod的网络空间;5. 在`/var/tmp`目录下使用`tcpdump`抓包。完成后按Ctrl+C停止抓包。
432 13
|
负载均衡 网络协议 算法
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
这网络层就像搭积木一样,上层协议都是基于下层协议搭出来的。不管是ping(用了ICMP协议)还是tcp本质上都是基于网络层IP协议的数据包,而到了物理层,都是二进制01串,都走网卡发出去了。 如果网络环境没发生变化,目的地又一样,那按道理说他们走的网络路径应该是一样的,什么情况下会不同呢? 我们就从路由这个话题聊起吧。
430 4
不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
|
Kubernetes 网络协议 网络安全
k8s中网络连接问题
【10月更文挑战第3天】
1104 7
|
网络协议 数据安全/隐私保护 网络虚拟化
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
307 0
|
Kubernetes 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
694 0
|
Linux 网络安全 Android开发
高级 ping 命令及技巧
Ping命令是一种常用的网络诊断工具,用于测试网络连接的可达性和延迟等信息
2306 57

热门文章

最新文章