最硬核k8s网络插件详解(flannel)

1、介绍

Flannel 是一个轻量级、易于配置的网络插件,旨在简化 Kubernetes 集群中 Pod 网络的管理。Flannel 的核心功能是提供一个虚拟的网络,允许每个 Pod 获取一个独立的 IP 地址,并实现不同节点间的 Pod 之间的通信

2、原理

2.1 基本概念

CNI (Container Network Interface): CNI 是一种标准接口,允许不同的网络插件与容器运行时进行交互。Flannel 就是一个实现了 CNI 规范的网络插件。

Backend: Flannel 支持多种后端实现方式,包括 VXLAN、host-gw(直接路由)、UDP 等等

2.2 原理

Flannel 首先从给定的更大地址池中为集群中的每个节点分配一个小的子网。然后,它会负责维护这些子网和对应节点之间的映射关系。当数据包需要从一个节点传输到另一个节点时,Flannel 根据其配置的 backend 来决定如何转发这些数据包。

2.3 flannel CNI工作流程

总结flannel-cni的工作流程如下:

  1. Pod创建与网络命名空间准备:当Kubernetes的kubelet创建一个Pod时,首先会创建一个pause容器,并使用该容器的网络命名空间作为参数(例如通过/var/run/docker/netns/xxxx获取)。这个命名空间将被用于后续CNI插件的调用。

  2. CNI配置文件:在/etc/cni/net.d/目录下存在名为10-flannel.conflist的配置文件,该文件由kube-flannel组

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值