TGTGInsighttelegram intelligenceLIVE / telegram public index
← Welcome to the Black Parade
Welcome to the Black Parade avatar

TGINSIGHT POST

Post #42

@TheB1ackParade

Welcome to the Black Parade

Views152Post view count
PostedMar 303/03/2020, 07:43 AM
Post content

Post content

工程上的问题就是复杂多变, 今天我死活都运行不了 calicoctl, 硬着头皮还是找到了问题, 重新总结 calico sdn 的思路. 症状: host1 不能 ping host2 上的容器 c1 0. 直接检查 host1 的 ip r 1. 有通往 c1 的路由说明 felix + bgp 都正常; 2. 如果宿主机的网络配置复杂难以肉眼判断, 那么可以通过 birdcl show route for [c1 ip] 看结果; 3. 留意 host1 和 host2 之间的网络环境, 如果宿主鸡 L2 不可达那么(在无 switch 支持的情况下) route 应该是要通过 ipip 隧道的; 4. 如果没有路由, 那么是 bgp / felix / wep 的锅. 5. 如果有路由, 直接怀疑 iptables, 直接在 host1 / host2 / c1 namespace 三处同时抓包, 最明显的临床症状是 host1 + host2 能抓包但是 c1 network namespace 里抓不到, 那就实锤. 1. 检查 bird: show route protocol kernel 1. 如果这里的结果是正确的(和 ip r 的结果一致), 说明 felix 的功能正常, wep 也不用检查了; 2. 如果没有 wep 那么是网络插件的锅, cni / cnm 看日志. 2. 确认 bgppeer 设置, mesh to mesh 还是 rr, 如果 calicoctl 不可用, 可以直接看 calico-node 的 /etc/calico/confd/config/. 3. 然后就抓包吧, tshark -iany -f 'tcp port 179' -Y bgp, 重启 host2 相关的 bgp protocol, 看 bgp 包有没有. 1. 没有的话尝试在 host1 手动连接 host2 179, 三次握手失败首先怀疑防火墙. 2. 如果 bgp 包正常, 那么怀疑 bgppeer 硬件设置. 3. 还有 calico profile, 本质也是 iptables 今天的难点还是在始终无法正常使用 calicoctl, etcd 又是有 auth + tls; 另外我始终无法理解 calico cni 的实现使用 kubernetes datastore 是什么鬼设计, 第一次看到插件反向适配宿主的, kubernetes 不愧是开源独裁, 不的不服. from https://gist.github.com/jschwinger23/accda0d4a901a941d4194a1d065a957a#file-calico-diagnose-2nd-edition-md