0
点赞
收藏
分享

微信扫一扫

Cilium 学习指南

​​Cilium v1.10.6 安装部署​​

通过这篇 安装部署文档,我们可以部署 Cilium 到我们的集群中,默认 vxlan 的模式,当然,也会在文档中特殊提示出部署 Cilium 的一些前提条件和一些细节步骤,方便我们更好的了解 eBPF 的特性。
v1.11 和 v1.10 的版本有一些小区别,但是没有太多本质的区别,所以此篇文档也适配于 v1.11.4(当前最新版本)

​​​Cilium Vxlan 模式​​

默认 Vxlan 模式的初步了解,了解一下 Cilium vxlan 报文中和 Flannel vxlan 的区别,比如 Request VNID 和 Reply VNID 并不一定相同,因为 cilium 中管理的应用是 Endpoint,每个应用的 identity 并不相同,而 Flannel 中的 VNID 是不变的,这个特性通过抓包来进行演示。

​​​Cilium 同节点 pod 通信过程​​

同节点的 pod 通信是 eBPF 最大的特性,具备了 ​​bpf_redict_peer()​​和 ​​bpf_redict_neigh()​​这两个非常重要的 helper 函数的能力,具有可以直接 redict 到 pod 内部,而不经过它的 veth-pair 网卡,这样绕过了 iptables 的 overhead ,这种能力,是可以通过 map 维护到 cilium 中。

Cilium 学习指南_cilium

​​Cilium Vxlan 跨节点通信过程​​​

Vxlan 跨节点通信过程,我们可以看到在 node 上的 ​​bpf_redict_neigh()​​ 能力,实现结合eBPF技术实现了datapath的"跳跃式"转发

Cilium 学习指南_cilium_02

​​Cilium native-routing 跨节点通信​​​

类似于 host-gw 的能力,cilium 使节点的网络和本地所在的网络达到类似下沉的能力,本地路由聚合了以后,全部走路由转发。
这样的优点是没有报文没有经过封装,纯路由的模式。
Cilium 学习指南_cilium_03
​​​Cilium host-Reachable Services​​​

host-Reachable 是 kubernetes 中的东西方向的流量。
Host-reachable services 对 Cilium 的底层数据通路是透明的,在连接系统调用(TCP、UDP)或者发送和接收 msg 的时候,目的 ip 被检查为现有的服务 IP,并选择服务后端之一作为目标,这意味着,当应用程序假定其连接到服务地址时,相应的内核的套接字实际上连接到后端地址,因为不需要额外的下层 NAT。

Cilium 学习指南_cilium_04
​​​Cilium DSR (Dircet Server Return)​​​

Cilium DSR 则是 kubernetes 中南北流量的模式,cilium 默认是通过 SNAT ,通过配置,我们可以调整为 DSR 模式。
简单来说就是通过减少路由的跳数,节点直接将请求返回地址给源端。Cilium 学习指南_cilium_05

Cilium cluster mesh

持续输出...ing



举报

相关推荐

0 条评论