calico故障问题排查

步骤

假设遇到了从容器A中无法访问容器B的问题:

从calico中获取容器的网卡信息

从calico中获取到发送端容器的workloadEndpoint:

$calicoctl get workloadendpoint --workload=<NAMESPACE>.<PODNAME> -o yaml
- apiVersion: v1
  kind: workloadEndpoint
  metadata:
    labels:
      calico/k8s_ns: <NAMESPACE>
      name: sshproxy-internal
      pod-template-hash: "3693247749"
      tenxcloud.com/appName: sshproxy-internal
      tenxcloud.com/svcName: sshproxy-internal
    name: eth0
    node: dev-slave-107
    orchestrator: k8s
    workload: <NAMESPACE>.<PODNAME>
  spec:
    interfaceName: cali69de609d5af
    ipNetworks:
    - 192.168.8.42/32
    mac: b2:21:5b:82:e1:27
    profiles:
    - k8s_ns.<NAMESPACE>

上面的查询结果说明:

1. 容器内的IP为192.168.8.42/32,mac地址是b2:21:5b:82:e1:27
2. 容器位于node端网卡为cali69de609d5af
3. 容器位于dev-slave-107

从calico中获取容器的接收端信息:

$calicoctl get workloadendpoint --workload=<NAMESPACE>.<PODNAME> -o yaml
- apiVersion: v1
  kind: workloadEndpoint
  metadata:
    labels:
      calico/k8s_ns: <NAMESPACE>
      name: sshproxy-cluster
      pod-template-hash: "162298777"
      tenxcloud.com/appName: sshproxy-cluster
      tenxcloud.com/svcName: sshproxy-cluster
    name: eth0kj
    node: dev-slave-140
    orchestrator: k8s
    workload: <NAMESPACE>.<PODNAME>
  spec:
    interfaceName: calie664becc2fd
    ipNetworks:
    - 192.168.60.173/32
    mac: da:ba:8d:7a:45:dc
    profiles:
    - k8s_ns.<NAMESPACE>

上面的查询结果说明:

1. 接收端node上的calio网卡为calie664becc2fd
2. 容器位于dev-slave-140

检查发送端的容器

查看容器内网卡是否正确,ip和mac是否与从calico中查询到的一致:

sh-4.2# ip addr
...
3: eth0@if57: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether b2:21:5b:82:e1:27 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.8.42/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::b021:5bff:fe82:e127/64 scope link
       valid_lft forever preferred_lft forever

查看容器的默认路由是否是168.254.1.1,且没有额外的路由:

sh-4.2# ip route
default via 169.254.1.1 dev eth0
169.254.1.1 dev eth0  scope link

在node上读取node对应的calico网卡的mac:

$ip link show cali69de609d5af
57: cali69de609d5af@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether ea:88:97:5f:06:d9 brd ff:ff:ff:ff:ff:ff link-netnsid 2

查看容器内记录的168.254.1.1的mac地址是否是node上的calico网卡的mac:

sh-4.2# ip neigh
169.254.1.1 dev eth0 lladdr ea:88:97:5f:06:d9 REACHABLE

检查发送端的node

在node上用tcpdump监听cali69de609d5af网卡,查看是否能够收到从容器内发出的报文

$tcpdump -i cali69de609d5af

检查node上的路由,目标IP的下一跳地址是否正确,目标IP是容器的地址,下一跳是否对应了正确的node ip:

$ip route
...
192.168.60.128/26 via 10.39.0.140 dev eth0  proto bird
...

检查node上的iptables规则,是否将容器的报文正确的送出

检查接收端的node

监听接收端node的网卡,检查是否收到了发送端node发送来的报文

$tcpdump -i eth0

检查接收端node上的路由,检查目标IP是否对应了正确的calico网卡

$ip route
...
192.168.60.173 dev calie664becc2fd  scope link
...

检查接收端node上的iptables规则,是否接受了报文

检查接收端的容器

监听接收端容器的网卡,检查是否收到了报文

最后

颠倒发送端和接收端,再做一次检查

原文来自:http://www.lijiaocn.com/%E9%97%AE%E9%A2%98/2017/08/18/calico-network-problem-resove.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,054评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,063评论 6 174
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,656评论 18 139
  • 第二章 物理层 频分复用:频分复用的用户在同样的时间占用不同的带宽资源(频率带宽) 时分复用:时分复用的用户在不同...
    PramaWells阅读 3,640评论 1 3
  • 春游西塘 北穎 细雨洒着杨柳, 花儿在微风细雨中格外鲜艳。 黑夜的小溪里, 明亮的灯盏格外美丽! 两旁的树木, 舒...
    北颖阅读 253评论 0 0