美文网首页
canal 网络的相关配置文件

canal 网络的相关配置文件

作者: 陈sir的知识图谱 | 来源:发表于2020-08-29 10:58 被阅读0次

cannal 网络使用flannel 作为node之间的连接网络,同时使用calico 作为 网络policy 管理器

flannel 解析

flannel 架构图

image.png

报文发送路径为

  1. 容器直接使用目标容器的ip访问,默认通过容器内部的eth0发送出去。
    2.报文通过veth pair被发送到vethXXX。
    3.vethXXX是直接连接到虚拟交换机docker0的,报文通过虚拟bridge docker0发送出去。
  2. 查找路由表,外部容器ip的报文都会转发到flannel0虚拟网卡,这是一个P2P的虚拟网卡,然后报文就被转发到监听在另一端的flanneld。
  3. flanneld通过etcd维护了各个节点之间的路由表,把原来的报文UDP封装一层,通过配置的iface发送出去。
  4. 报文通过主机之间的网络找到目标主机。
  5. 报文继续往上,到传输层,交给监听在8285端口的flanneld程序处理。
  6. 数据被解包,然后发送给flannel0虚拟网卡。
  7. 查找路由表,发现对应容器的报文要交给docker0。
  8. docker0找到连到自己的容器,把报文发送过去。

flannel 的相关配置和组件位置

K8S 安装cannal后,会有三个cannal 的pod


image.png

通过

kubectl describe pod cannal-xxxx 会发现其中一个是flannel的 容器。
# 更快的方法是直接使用docker ps 
image.png

用 kubectl exec -it 或者docker exec -it 进入容器。可以发现配置文件路径如下

  1. /etc/kube-flannel
  2. /run/flannel
image.png
image.png

Flannel启动过程解析:

  1. 从etcd中获取network的配置信息
  2. 划分subnet,并在etcd中进行注册
  3. 将子网信息记录到/run/flannel/subnet.env中

Calico

Calico 架构

image.png

calico包括如下重要组件:Felix,etcd,BGP Client,BGP Route Reflector。下面分别说明一下这些组件。

  1. Felix:主要负责路由配置以及ACLS规则的配置以及下发,它存在在每个node节点上。
  2. etcd:分布式键值存储,主要负责网络元数据一致性,确保Calico网络状态的准确性,可以与kubernetes共用;
  3. BGPClient(BIRD), 主要负责把 Felix写入 kernel的路由信息分发到当前 Calico网络,确保 workload间的通信的有效性;
  4. BGPRoute Reflector(BIRD), 大规模部署时使用,摒弃所有节点互联的mesh模式,通过一个或者多个 BGPRoute Reflector 来完成集中式的路由分发;

原理


image.png

配置文件位置

/etc/calico/confd/conf.d 主机里的位置 -----> /etc/calico/confd pod里的位置

CNI 相关的文件夹

  1. /etc/cni/net.d/ 存放配置文件
  2. /opt/cni/bin 存放cni 插件的可执行文件
  3. /var/lib/cni 存放 K8S的网络说明文件

相关文章

网友评论

      本文标题:canal 网络的相关配置文件

      本文链接:https://www.haomeiwen.com/subject/bpdlsktx.html