范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

K8S问题排查

  问题背景
  K8S 集群中修改calico 的网络为vxlan 模式后,发现部分service 在节点上无法访问(实际上是延迟访问,延迟时间稳定在1min3s 左右)。[root@node2 ~]# time curl -s http://10.96.91.255 real    1m3.136s user    0m0.005s sys     0m0.005s原因分析
  先确认问题范围,在环境上找多个 service 依次测试发现,如果调用service 的节点和实际pod 不在同一个节点上,则出现延迟,否则请求正常。也就是说跨节点的访问才有问题。而直接用service 对应的podIP 访问,也不存在问题,猜测问题可能出在service 转pod 的过程。
  再确认基本环境, OS 、K8S 、calico 等基础环境没有发生任何变化,仅仅是把calico 的网络模式从BGP 改为了vxlan ,但是这个改动改变了集群内service 及pod 的请求路径,也即所有的容器请求需要走节点上新增的calico.vxlan 接口封装一下。网络模式修改前没有问题,修改后必现,之后切回BGP 模式问题就消失了,说明问题可能跟新增的calico.vxlan 接口有关系。
  先看下环境情况,并触发 service 请求:# 验证环境:node2(10.10.72.11)——> node1(10.10.72.10) # 验证方法:node2上curl service:10.96.91.255 ——> node1上pod:166.166.166.168:8082 [root@node2 ~]# ip addr 10: vxlan.calico:  mtu 1410 qdisc noqueue state UNKNOWN group default     link/ether 66:2d:bf:44:a6:8b brd ff:ff:ff:ff:ff:ff     inet 166.166.104.10/32 brd 166.166.104.10 scope global vxlan.calico        valid_lft forever preferred_lft forever  [root@node1 ~]# ip addr 15: vxlan.calico:  mtu 1410 qdisc noqueue state UNKNOWN group default     link/ether 66:f9:37:c3:7e:94 brd ff:ff:ff:ff:ff:ff     inet 166.166.166.175/32 brd 166.166.166.175 scope global vxlan.calico        valid_lft forever preferred_lft forever  [root@node2 ~]# time curl http://10.96.91.255
  在 node1 的主机网卡上抓包看看封装后的请求是否已到达:[root@node1 ~]# tcpdump -n -vv -i eth0 host 10.10.72.11 and udp tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 07:19:42.730996 IP (tos 0x0, ttl 64, id 6470, offset 0, flags [none], proto UDP (17), length 110)     10.10.72.11.nim-vdrshell > 10.10.72.10.4789: [bad udp cksum 0xffff -> 0x3af0!] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 64, id 39190, offset 0, flags [DF], proto TCP (6), length 60)     166.166.104.10.35632 > 166.166.166.168.us-cli: Flags [S], cksum 0xe556 (correct), seq 3025623348, win 29200, options [mss 1460,sackOK,TS val 101892130 ecr 0,nop,wscale 7], length 0 07:19:43.733741 IP (tos 0x0, ttl 64, id 6804, offset 0, flags [none], proto UDP (17), length 110)     10.10.72.11.nim-vdrshell > 10.10.72.10.4789: [bad udp cksum 0xffff -> 0x3af0!] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 64, id 39191, offset 0, flags [DF], proto TCP (6), length 60)     166.166.104.10.35632 > 166.166.166.168.us-cli: Flags [S], cksum 0xe16b (correct), seq 3025623348, win 29200, options [mss 1460,sackOK,TS val 101893133 ecr 0,nop,wscale 7], length 0 07:19:45.736729 IP (tos 0x0, ttl 64, id 7403, offset 0, flags [none], proto UDP (17), length 110)     10.10.72.11.nim-vdrshell > 10.10.72.10.4789: [bad udp cksum 0xffff -> 0x3af0!] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 64, id 39192, offset 0, flags [DF], proto TCP (6), length 60)     166.166.104.10.35632 > 166.166.166.168.us-cli: Flags [S], cksum 0xd998 (correct), seq 3025623348, win 29200, options [mss 1460,sackOK,TS val 101895136 ecr 0,nop,wscale 7], length 0 07:19:49.744801 IP (tos 0x0, ttl 64, id 9648, offset 0, flags [none], proto UDP (17), length 110)     10.10.72.11.nim-vdrshell > 10.10.72.10.4789: [bad udp cksum 0xffff -> 0x3af0!] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 64, id 39193, offset 0, flags [DF], proto TCP (6), length 60)     166.166.104.10.35632 > 166.166.166.168.us-cli: Flags [S], cksum 0xc9f0 (correct), seq 3025623348, win 29200, options [mss 1460,sackOK,TS val 101899144 ecr 0,nop,wscale 7], length 0 07:19:57.768735 IP (tos 0x0, ttl 64, id 12853, offset 0, flags [none], proto UDP (17), length 110)     10.10.72.11.nim-vdrshell > 10.10.72.10.4789: [bad udp cksum 0xffff -> 0x3af0!] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 64, id 39194, offset 0, flags [DF], proto TCP (6), length 60)     166.166.104.10.35632 > 166.166.166.168.us-cli: Flags [S], cksum 0xaa98 (correct), seq 3025623348, win 29200, options [mss 1460,sackOK,TS val 101907168 ecr 0,nop,wscale 7], length 0 07:20:05.087057 IP (tos 0x0, ttl 64, id 8479, offset 0, flags [none], proto UDP (17), length 164)     10.10.72.10.34565 > 10.10.72.11.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 3425, offset 0, flags [DF], proto UDP (17), length 114)     166.166.166.168.57850 > 166.166.104.6.domain: [udp sum ok] 10121+ AAAA? influxdb-nginx-service.kube-system.svc.kube-system.svc.cluster.local. (86) 07:20:05.087076 IP (tos 0x0, ttl 64, id 54475, offset 0, flags [none], proto UDP (17), length 164)     10.10.72.10.51841 > 10.10.72.11.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 3424, offset 0, flags [DF], proto UDP (17), length 114)     166.166.166.168.57984 > 166.166.104.6.domain: [udp sum ok] 20020+ A? influxdb-nginx-service.kube-system.svc.kube-system.svc.cluster.local. (86) 07:20:05.087671 IP (tos 0x0, ttl 64, id 13540, offset 0, flags [none], proto UDP (17), length 257)     10.10.72.11.60395 > 10.10.72.10.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 19190, offset 0, flags [DF], proto UDP (17), length 207)     166.166.104.6.domain > 166.166.166.168.57850: [udp sum ok] 10121 NXDomain*- q: AAAA? influxdb-nginx-service.kube-system.svc.kube-system.svc.cluster.local. 0/1/0 ns: cluster.local. SOA ns.dns.cluster.local. hostmaster.cluster.local. 1647633218 7200 1800 86400 5 (179) 07:20:05.087702 IP (tos 0x0, ttl 64, id 13541, offset 0, flags [none], proto UDP (17), length 257)     10.10.72.11.48571 > 10.10.72.10.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 19191, offset 0, flags [DF], proto UDP (17), length 207)     166.166.104.6.domain > 166.166.166.168.57984: [udp sum ok] 20020 NXDomain*- q: A? influxdb-nginx-service.kube-system.svc.kube-system.svc.cluster.local. 0/1/0 ns: cluster.local. SOA ns.dns.cluster.local. hostmaster.cluster.local. 1647633218 7200 1800 86400 5 (179) 07:20:05.088801 IP (tos 0x0, ttl 64, id 8480, offset 0, flags [none], proto UDP (17), length 152)     10.10.72.10.55780 > 10.10.72.11.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 3427, offset 0, flags [DF], proto UDP (17), length 102)     166.166.166.168.56015 > 166.166.104.6.domain: [udp sum ok] 19167+ AAAA? influxdb-nginx-service.kube-system.svc.svc.cluster.local. (74) 07:20:05.089048 IP (tos 0x0, ttl 64, id 13542, offset 0, flags [none], proto UDP (17), length 245)     10.10.72.11.50151 > 10.10.72.10.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 19192, offset 0, flags [DF], proto UDP (17), length 195)     166.166.104.6.domain > 166.166.166.168.56015: [udp sum ok] 19167 NXDomain*- q: AAAA? influxdb-nginx-service.kube-system.svc.svc.cluster.local. 0/1/0 ns: cluster.local. SOA ns.dns.cluster.local. hostmaster.cluster.local. 1647633218 7200 1800 86400 5 (167) 07:20:05.089212 IP (tos 0x0, ttl 64, id 8481, offset 0, flags [none], proto UDP (17), length 148)     10.10.72.10.50272 > 10.10.72.11.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 3430, offset 0, flags [DF], proto UDP (17), length 98)     166.166.166.168.54926 > 166.166.104.6.domain: [udp sum ok] 40948+ A? influxdb-nginx-service.kube-system.svc.cluster.local. (70) 07:20:05.089403 IP (tos 0x0, ttl 64, id 13543, offset 0, flags [none], proto UDP (17), length 241)     10.10.72.11.59882 > 10.10.72.10.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 19193, offset 0, flags [DF], proto UDP (17), length 191)     166.166.104.6.domain > 166.166.166.168.54926: [udp sum ok] 40948 NXDomain*- q: A? influxdb-nginx-service.kube-system.svc.cluster.local. 0/1/0 ns: cluster.local. SOA ns.dns.cluster.local. hostmaster.cluster.local. 1647633218 7200 1800 86400 5 (163) 07:20:05.089524 IP (tos 0x0, ttl 64, id 8482, offset 0, flags [none], proto UDP (17), length 134)     10.10.72.10.58964 > 10.10.72.11.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 3431, offset 0, flags [DF], proto UDP (17), length 84)     166.166.166.168.50263 > 166.166.104.6.domain: [udp sum ok] 18815+ A? influxdb-nginx-service.kube-system.svc. (56) 07:20:05.089681 IP (tos 0x0, ttl 64, id 13544, offset 0, flags [none], proto UDP (17), length 134)     10.10.72.11.51874 > 10.10.72.10.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 19194, offset 0, flags [DF], proto UDP (17), length 84)     166.166.104.6.domain > 166.166.166.168.50263: [udp sum ok] 18815 ServFail- q: A? influxdb-nginx-service.kube-system.svc. 0/0/0 (56) 07:20:05.089706 IP (tos 0x0, ttl 64, id 8483, offset 0, flags [none], proto UDP (17), length 134)     10.10.72.10.59891 > 10.10.72.11.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 3433, offset 0, flags [DF], proto UDP (17), length 84)     166.166.166.168.49202 > 166.166.104.6.domain: [udp sum ok] 58612+ AAAA? influxdb-nginx-service.kube-system.svc. (56) 07:20:05.089859 IP (tos 0x0, ttl 64, id 13545, offset 0, flags [none], proto UDP (17), length 134)     10.10.72.11.44146 > 10.10.72.10.4789: [no cksum] VXLAN, flags [I] (0x08), vni 4096 IP (tos 0x0, ttl 63, id 19195, offset 0, flags [DF], proto UDP (17), length 84)     166.166.104.6.domain > 166.166.166.168.49202: [udp sum ok] 58612 ServFail- q: AAAA? influxdb-nginx-service.kube-system.svc. 0/0/0 (56)
  从抓包结果看,出现一个可疑点:前几个报文中提示 bad udp cksum 0xffff ,请求通的最后几个报文提示的是no cksum 。
  根据这个错误信息,搜索发现是个已知 bug ,相关的详细定位可以参考[1]-[3],这里就不细说了。大概原因如下所述:内核中存在一个和VXLAN处理有关的缺陷,该缺陷会导致Checksum Offloading不能正确完成。这个缺陷仅仅在很边缘的场景下才会表现出来。
  在 VXLAN 的UDP 头被NAT 过的前提下,如果:
  VXLAN 设备禁用(这是RFC 的建议)了UDP Checksum
  VXLAN 设备启用了Tx Checksum Offloading
  就会导致生成错误的 UDP Checksum 。
  从资料[1]看, K8S 的v1.18.5 版本已经修复了这个问题,但我的问题是在v1.21.0 上发现的,所以不确定只升级K8S 是否可以解决该问题,或者升级后还需要额外配置什么?
  从资料[3]和[4]看, calico 在v3.20.0 版本做了修改:在kernels < v5.7 时也禁用了calico.vxlan 接口的Offloading 功能。
  本地临时禁用并验证: [root@node2 ~]# ethtool --offload vxlan.calico rx off tx off Actual changes: rx-checksumming: off tx-checksumming: off         tx-checksum-ip-generic: off tcp-segmentation-offload: off         tx-tcp-segmentation: off [requested on]         tx-tcp-ecn-segmentation: off [requested on]         tx-tcp6-segmentation: off [requested on]         tx-tcp-mangleid-segmentation: off [requested on] udp-fragmentation-offload: off [requested on][root@node2 ~]# time curl http://10.96.91.255 real    0m0.009s user    0m0.002s sys     0m0.007s
  请求恢复正常。 解决方案临时解决:  ethtool --offload vxlan.calico rx off tx off 永久解决:升级 calico >=v3.20.0 或升级内核到5.6.13, 5.4.41, 4.19.123, 4.14.181 ,单独升级K8S >= v1.18.5 版本待确认是否能解决参考资料https://blog.gmem.cc/nodeport-63s-delay-due-to-kernel-issue https://cloudnative.to/blog/kubernetes-1-17-vxlan-63s-delay/ https://bowser1704.github.io/posts/vxlan-bug/ https://github.com/projectcalico/calico/issues/3145 https://github.com/projectcalico/felix/pull/2811/files

雷军真大方,小米旗舰降价1500元,销量反超iPhone12在刚刚过去的四月份,小米旗下机皇小米11U这款机型的出货量是非常可观的。单单在京东自营店一个地方,一个月的出货量就接近10万台了。可以说小米11U这款手机在四月份的销售量是非常不错对标特斯拉Model3,比亚迪海豹即将开启预售,王者之战定将上演比亚迪海豹是比亚迪海洋系列的一款车型,坊间流传,比亚迪海豹的售价将在2228万元,将对标特斯拉Model3,那么比亚迪海豹能不能和特斯拉Model3一较高下呢?让我们拭目以待吧。之中国第一家互联网地图服务网站将下线,成立至今已服务23年搜狗地图官网显示,搜狗地图将于2022年5月15日23点正式下线,届时关闭所有相关服务。请下载腾讯地图为您提供更好的服务。公开资料显示,搜狗地图成立于1999年,原名图行天下,是中新鲜早科技丨搜狗地图官宣5月15日下线理想汽车回应校招生offer解约知网否认是外国法人独资企业21世纪经济报道数字经济课题组综合报道早上好,新的一天又开始了。在过去的24小时内,科技行业发生了哪些有意思的事情?来跟21tech一起看看吧。巨头风向标1搜狗地图官宣5月15日下PHPPython二分查找法获取IP地理位置最近今日头条上线了在创作者个人主页更多信息里显示创作者的地理位置。今日头条是为了加强建设健康优质有益多元的网络生态。但功能上线后曝光了一些人性虚伪的层面。有些V账号的个人主页的地理数字科技赋能新市民金融需求来源经济日报新闻客户端近年来,我国普惠金融获得长足发展,金融机构积极创新产品和服务,运用数字科技手段,大大提升了金融服务的覆盖面和可得性,新市民金融服务的水平和能力有了明显改变。当史上最具定制化的苹果智能手表靠实力获好评奢侈品圈子里,也开始刮起数码风。像爱马仕,一个奢侈品界的霸主联手苹果,一个科技界的翘楚,合作推出定制款AppleWatch智能手表。价格果然很爱马仕,只能用很贵,非常贵来形容。不过华为智能手表WatchGT3Pro重磅升级加入微信支付在4月底的新品发布会上,华为WATCHGT3Pro系列智能手表正式发布,会上余承东表示,该系列是智能手表的颜值天花板。日前,华为WATCHGT3Pro推送HarmonyOS2。1。华谊兄弟联手华胜天成探索虚拟世界,文化碰撞科技可否摆脱亏损?艾媒网(iimedia。cn)获悉,近日,影视企业华谊兄弟与提供一站式创新融合的数字化集成服务商华胜天成联合宣布,双方已正式达成战略合作,将基于华谊兄弟的影视创意基因和华胜天成的云基于架构创新,业内首款存算一体大算力AI芯片点亮5月23日,AI芯片公司后摩智能宣布,其自主研发的业内首款存算一体大算力AI芯片成功点亮,并成功跑通智能驾驶算法模型。芯片点亮指电流顺利通过芯片,通常意味着芯片可用,后续测试修正后地球上有没有天然碳化硅,碳化硅为什么被称为莫桑石莫桑钻碳化硅材料的起源(天然篇)碳化硅材料具有优异的理化性能,这也使得它被人们发现的历程别具一格,慧眼的科学家最终在陨石中发现了它,可是碳化硅材料却也常常被人们称为人工晶体。这是为什么?
5G安全谈判取得进展美国通信和航空业称将携手解决问题财联社(上海,编辑夏军雄)讯,美国通信业和航空业周三表示,他们在解决5G服务引发的航空安全隐忧方面取得了进展。美国航空公司无线通信行业组织CTIA以及航空航天工业协会发表联合声明称美国第四个硅谷要诞生了?众所周知,对于留美就业而言,地理位置是你不得不仔细考虑的一项重要因素。比如,加州历来都是留学热门地区的Top1,每年留学生人数都在上涨,这里的高科技产业一直处于世界领先地位,更有举7500mAh,马斯克一出手就是王炸!骁龙8Gen1也跑不了众所周知,现在特斯拉创始人马斯克是全球首富!这个人比较奇特,无论干什么都喜欢讲究技术,特别是在电动汽车方面,特斯拉现在是当之无愧的全球第一。内行人也都知道,特斯拉电动汽车之所以全球新能源元宇宙双轮驱动领益智造全面发力打造新增长极近日,领益智造桂林智能制造项目一期正式投产,标志着领益智造(证券代码002600)在智能制造方面再次迈出重要一步。公告显示,领益智造于今年1月11日与桂林经济技术开发区管理委员会签雷军太勇了!网友的尖锐提问都回答了,关于芯片和MIUI信息量很大小米将在下周二(12。28)举行发布会,小米创始人雷军也在个人社交账号回答了大家关注的问题,这篇回答信息很多,关于汽车MIUI13芯片的问题雷总都回答了。首先是关于小米12,雷总确苹果小米酷派均上玻璃机身,金属机身为何被淘汰?网友怕了年关将近,据不完全统计,包括荣耀酷派vivo等手机厂商在内,本月新品发布会已经超过10场。就在大家为这各手机厂商的处理器摄像头方案争论不休时,细心的机友注意到了一个小细节,那就是上为什么现在都推荐洗地机?确实比吸尘器好用太多!倍思X3测评家里有一个戴森的无绳吸尘器,虽然挺好用,但是北方气候干燥,每次吸完尘必须再用拖布给地板擦一遍,既起到巩固清洁地板的作用,又有一定的增湿效果,但是这样下来就是两遍的作业活动,确实有点从合规管理角度来看阿里巴巴的性侵案件阿里巴巴在这次内部员工性侵犯事件中,爆出公司文化和合规管理方面的缺陷,引出舆论哗然。当企业发展到一定体量时,需要从制度上预防此类事件的发生,从根本上解决类似问题。这也要求企业在合规你学废了吗?WebGL与Node。js中的BufferWebGL和Node。js中都有Buffer的使用,简单对比记录一下两个完全不相干的领域中Buffer异同,加强记忆。Buffer是用来存储二进制数据的缓冲区,其本身的定义和用途在iQOO8标准版配置曝光京东方1080p柔性屏带有微云台主摄iQOO8系列新机的预热宣传到了最后阶断,现在该系列的相关信息也越来越多的被曝光出来,现在国内知名爆料人士熊猫很秃然在社交平台上曝光了iQOO8标准版的相关配置,标准版的屏幕供应商坚果J10一年降价一千,现在还能入手吗坚果J10是2020年9月发布的,是坚果发布的高亮度旗舰机,今天我们来看一下坚果J10怎么样,另外本文也会讲到今年当贝发布的当贝激光投影X3,同样是主打高亮度的高端旗舰机,今天会就