k8s网络基础(CNM模型、CNI模型、Flannel、calico-BGP模式)

1. CNM模型

DOCKER公司提出,主要通过如下三个组件实现:

1.1 Network Sandbox

  • 作用: 容器内部网络栈,包括网络接口、路由表、DNS等配置的管理。
  • 实现:可用 linux网络命名空间、FreeBSD Jail等机制实现
  • 说明:一个Sandbox可以包含多个Endpoint。

1.2 Endpoint

  • 作用:用于将容器内部Sandbox与外部网络相连的网络接口。
  • 实现:可用veth对、Open vSwitch内部port等技术实现。
  • 说明:一个Endpoint仅可加入一个Network

1.3 Network

  • 作用:可以直接相互连接的Endpoint的集合。
  • 实现:可用linux网桥、VLAN等技术实现。
  • 说明:一个Network包含多个Endpoint

2. CNI模型

由CoreOS公司提出的一种容器网络规范。被kubernetes等项目采纳。
其对容器网络的设置和操作都通过插件完成,有如下两种类型:

2.1 CNI Plugin

作用:负责为容器配置网络资源。

包括如下3个基本接口的定义:

  • ADD:将容器添加到某个网络
  • DELETE:容器销毁时将容器从某个网络中删除
  • CHECK:检查容器网络是否正确
  • VERSION:查询网络插件支持的CNI规范版本号

2.2 IPAM Plugin

作用:负责对容器的IP地址进行分配和管理。如:为容器分配IP、网关、路由、DNS。


下边介绍集中常用的网络组件

3. Flannel

3.1 实现原理

1) 协助kubernetes,给每个node上的容器分配互不冲突的IP地址
2)建立一个覆盖网络(Overlay Network),通过该网络将数据原封不动的传给目标容器。

3.2 网络架构

在这里插入图片描述

  • flannel0的网桥一端谅解docker0,一端连接flanneld 服务进程

  • flanneld进程连接etcd
    利用etcd管理可分配的IP地址网段资源
    监控etcd中每个Pod的实际地址,并在内存中建立一个Pod节点的路由表

  • flanneld进程下连docker0和物理网络
    使用内存中的Pod路由表,将docker0发来的数据包包装起来,利用物理网络投递到目标flanneld上。
    目标flanneld解包,发送给docker0(因此daocker0得到的是原始数据)

4. calico-BGP模式

4.1 实现原理

一个基于BGP的纯三层网络方案
在每个计算节点上由一个vRouter 来负责转发,每个vRouter通过BGP1协议把本节点上运行的容器路由信息向整个Calico网络广播,并自动设置到达其他节点的路由转发规则

4.2网络架构

在这里插入图片描述

4.3 calico 组件

  • Felix:
    是一个Calico Agent,运行在每个node上,负责为容器设置网络资源(如IP地址、路由规则、iptables规则等),保证跨主机容器网络互通

  • **etcd:**后端存储

  • BGP Client
    负责把Felix在各Node上设置的路由信息通过BGP协议广播到Calico网络

  • Route Reflector:
    通过一个或多个BGP Reflector 来完成大规模集群的分级路由分发

  • CalicoCtl
    Calico的命令行管理工具。

4.4 IP Pool 的两种模式

  • IPIP模式
    将各Node的路由之间做一个tunnel,再把两个网络连接起来。如图所示:

在这里插入图片描述

  • BGP模式
    直接使用物理机作为虚拟路由器(vRouter),不再创建额外的tunnel

  • 设置方法
    calico-node的容器中变量设置为:
    ipip模式: CALICO_IPV4POOL_IPIP="always"
    BGP模式: CALICO_IPV4POOL_IPIP="off"


在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值