Kubernetes 中的网络解析 —— 以 calico 为例

Calicoarrow-up-right 原意为”有斑点的“,如果说一只猫为 calico cat 的话,就是说这是只花猫,也叫三色猫,所以 calico 的 logo 是只三色猫。

Calico

概念

Calico创建和管理一个扁平的三层网络(不需要overlay),每个容器会分配一个可路由的IP。由于通信时不需要解包和封包,网络性能损耗小,易于排查,且易于水平扩展。

小规模部署时可以通过BGP client直接互联,大规模下可通过指定的BGP Route Reflector来完成,这样保证所有的数据流量都是通过IP路由的方式完成互联的。

Calico基于iptables还提供了丰富而灵活的网络Policy,保证通过各个节点上的ACL来提供Workload的多租户隔离、安全组以及其他可达性限制等功能。

Calico架构

CRI架构-图片来自https://www.jianshu.com/p/f0177b84de66

Calico主要由Felix、etcd、BGP client、BGP Route Reflector组成。

部署

运行下面的命令可以部署 calico 网络。

如果安装时启用应用层策略的话还需要安装 istioarrow-up-right,详见 Enabling application layer policyarrow-up-right

参考

最后更新于