cilium_host涉及的iptables表项如下,可以看到对源地址为127.0.0.1的报文进行了SNAT。
Chain CILIUM_POST_nat (1 references) pkts bytes target prot opt in out source destination 1977 119K MASQUERADE all -- * !cilium_+ 10.42.0.0/24 !10.42.0.0/24 /* cilium masquerade non-cluster */ 1521 95679 RETURN all -- * !cilium_host 0.0.0.0/0 0.0.0.0/0 /* exclude non-cilium_host traffic from masquerade */ 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xa00/0xe00 /* exclude proxy return traffic from masquarade */ 0 0 SNAT all -- * cilium_host !10.42.0.79 !10.42.0.0/24 /* cilium host->cluster masquerade */ to:10.42.0.79 0 0 SNAT all -- * cilium_host 127.0.0.1 0.0.0.0/0 /* cilium host->cluster from 127.0.0.1 masquerade */ to:10.42.0.79 跨节点网络下面是使用Host L3进行跨节点通信的流程图
下面是使用vxlan进行跨节点通信的流程图
Cilium cli使用Cilium后,不会再使用kube-proxy,它会从Kubernetes API服务器获得Service信息,并存入BPF。可以使用cilium命令行查看相关的信息。如使用# cilium node list查看当前的node节点信息,使用# cilium service list查看service信息等。对于策略的获取,可以通过命令行# cilium policy get,也可以通过Hubble UI查看,如下:
参考:
Kubernetes Multi-Cluster Networking -Cilium Cluster Mesh
Kubernetes_Cilium_Plugin