Kubernetes网络插件flannel原理简介

Flannel是kubernetes的网络插件之一,通过构建k8s集群节点之间的overlay网络,实现跨节点通信等功能。flannel常用的网络转发模式有hostgw、udp、vxlan等,在实际生产中常用的是vxlan模式。

子网划分

k8s会为每个集群节点划分子网,这样pod调度到某节点时,就会按照该节点的子网网段分配ip,保障pod ip的集群唯一性。

我们可以查看/run/flannel/subnet.env 文件,里面主要包括当前节点的子网信息。例如本机集群192.168.249.10节点子网网段是10.244.0.0/24,192.168.249.12节点子网网段是10.244.1.0/24

53db63d3de3bbb14afa5b65b79787791.png

Flannel通过daemonset的方式在每个k8s节点上运行了一个flanneld的服务,通过flanneld进程对节点进行创建隧道,添加路由信息,修改iptables等操作。

跨节点Pod通信

我们以vxlan模式为例看一下flannel如何实现的pod间的通信。

Flannel创建名为flannel.1的vxlan设备(nolearning),设备ip是子网的第一个IP 10.244.1.0,并把设备的mac和ip和本节点的ip记录到etcd中。还会创建名为cni0的网桥,网桥的ip是子网的第二个ip 10.244.1.1,起到docker0网桥的作用。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值