记一次离奇的calico工作异常

1 篇文章 0 订阅
1 篇文章 0 订阅

记一次离奇的calico工作异常

现象:
处于不同节点之间容器网络互访不能连通,但是同一个节点中的容器互访是通畅的,但是跨节点可以ping通,可以curl通部分接口

第一次排查

尝试在网上找到相关解决方案,所有解决方案都是关于calico的配置文件问题的,由于calico是使用脚本安装的,所以理论上不会出现问题,检查配置文件也未找到相关问题,暂时排除配置文件的问题,继续做各种实验,查询各种资料

第二次排查

突破点:部分请求跨节点连接通畅

尝试复现可联通和不可联通的情况,找到它们之间的差异和界限

实验结果
发现在请求http时,可联通 (后已证伪)
在socket请求时,不能连通

结论
目前的配置导致calico对长连接式的请求支持有问题 (后已证伪)

第三次排查

发现请求失败的http接口,证明并不是所有http请求都可以工作
http请求可连通结论证伪

第四次排查

尝试对一次请求进行debug
突破点 expecting SSH2_MSG_KEX_ECDH_REPLY

strace ssh sshd2
# 以及
ssh -v sshd2

发现一条输出为 expecting SSH2_MSG_KEX_ECDH_REPLY

继续搜索 发现成熟的解决方案 https://github.com/johnnian/Blog/issues/44

结论:

物理网卡的MTU为1454 ,calico虚拟网卡MTU为1500,导致大于长度1454的包在传输过程中损坏
之前http请求成功的情况包的长度仅有800字节,误导了之前的判断

解决方案:

  1. /etc/sysconfig/network-scripts/ifcfg-eth0 中添加 MTU="1500"
  2. systemctl restart network
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值