k8s-trouble-nodeport:本机访问本机的nodeport很慢,其他节点访问很快

问题描述

k8s搭建完成后,我在本机访问本机的nodeport会很慢,而通过其他主机会很快,如下图
k8s-trouble-nodeport:本机访问本机的nodeport很慢,其他节点访问很快_第1张图片
在这里插入图片描述
下面是直接访问后端节点,也很快,shit~
k8s-trouble-nodeport:本机访问本机的nodeport很慢,其他节点访问很快_第2张图片
跨节点访问,也很快,就是自己访问自己很慢。ohshit
k8s-trouble-nodeport:本机访问本机的nodeport很慢,其他节点访问很快_第3张图片

解决的过程
  • pod中并没有异常日志
  • 服务器的dmesg、message也没有异常
  • 使用strace 跟踪了一下,发现了连接超时
    k8s-trouble-nodeport:本机访问本机的nodeport很慢,其他节点访问很快_第4张图片
  • 既然是连接超时,那就抓包看一下情况
    自己发往自己的包
    k8s-trouble-nodeport:本机访问本机的nodeport很慢,其他节点访问很快_第5张图片

发现很多的 incorrect …

自己发起的包

发现很多的 incorrect …

百度搜索了一下 incorrect cksum

关于offload的知识点,再最后面,有兴趣的可以查看一下

# 关闭 网卡和flannel的 offload
ethtool -K eth0 rx off tx off sg off tso off    
ethtool -K flannel.1 rx off tx off sg off tso off    

然后测试自己访问自己,很快了。

集群中有台物理机在没关offload的情况下,自己访问自己就很快。 但是虚机就不行。这一点我没找到原因。

offload知识点

访问nodeport时,一部分能通,一部分不能通

针对一会儿通一会儿不通的现象,我们也可以用上面的方式进行解决。
下面我遇到的一个问题,访问nodeport时,有时能连接上,有时不能连接上。
k8s-trouble-nodeport:本机访问本机的nodeport很慢,其他节点访问很快_第6张图片

这是我看到一个外国老哥对这种问题的解释。
https://serverfault.com/questions/1010978/cannot-access-to-kubernetes-nodeport-from-other-worker-nodes-except-the-pods-on

你可能感兴趣的:(k8s,kubernetes,nodeport)