二进制部署kubernetes,flannel网络是如何工作的

本文探讨了在二进制部署Kubernetes时,Flannel网络插件如何在kubelet未显式配置的情况下参与pod网络创建。Flannel作为Meta插件依赖于Docker的bridge网络模式。在单节点环境中,pod网络直接由Docker配置,而跨节点通信通过Flannel实现。同时,文章分析了kubelet的network-plugin参数默认为空时,如何使用Noop plugin与Docker协同工作,确保infra容器以bridge模式创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二进制部署kubernetes时,大多数使用的是推荐的flannel网络插件,但是部署后我们会发现一个问题,kubelet启动没有指定flannel ,我们也没有配置network-plugin,那么kubelet在创建pod时,究竟flannel如何参与容器的网络创建的。从配置中能看到的是flannel启动时,将本节点的网段传递了docker启动参数。docker启动后会以此设置docker0网桥的网段。

网络上很多没有说明具体的原因,有一篇文章倒是有提到。可以参考,但是没有本质解决我的疑问。

其实我们有以下几个疑问:

  1. flannel这个插件的工作原理,为什么network-plugin没有体现flannel, flannel最终实现跨节点的pod通信?
  2. kubelet对network-plugin参数的默认值是多少?针对该配置,对pod的网络流程的影响?

(一)先回答第一个问题:

      flannel在cni中是一个相对于calico等第三方cni比较特殊的一个插件,特殊在哪呢?https://github.com/containernetworking/plugins中也有说明,flannel属于Meta: other plugins类,不能独立工作,需要有Main类支持才可以。而flannel本质是调用Main类中的bridge,这个和docker 默认的NetworkMode是一致的。因此二进制部署的时候,kubelet没有指定flannel相关的配置,pod的网络也配好了,肯定是docker自己配置的。

     所以二进制部署时,pod的Sandbox的网络不是flannel配置的,即创建infra容器,创建veth pair对,插网桥等动作是docker自

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值