Kubernetes必备知识: 主流网络方案-阿里云开发者社区

开发者社区> 阿里云术语库> 正文

Kubernetes必备知识: 主流网络方案

简介: 常见的容器网络方案可以从协议栈层级、穿越形态、隔离方式这三种形式进行划分。 协议栈层级: 第一种:协议栈二层。 第二种:协议栈三层(纯路由转发)。 第三种:协议栈二层加三层。

所属技术领域:

K8s

|名词定义|

常见的容器网络方案可以从协议栈层级、穿越形态、隔离方式这三种形式进行划分。
协议栈层级:
第一种:协议栈二层。
第二种:协议栈三层(纯路由转发)。
第三种:协议栈二层加三层。
穿越形态:
按穿越的形态划分,这个与实际部署环境十分相关。穿越形态分为两种:Underlay、Overlay。
Underlay:在一个较好的一个可控的网络场景下,我们一般利用 Underlay。可以这样通俗的理解,无论下面是裸机还是虚拟机,只要网络可控,整个容器的网络便可直接穿过去 ,这就是 Underlay。
Overlay:Overlay 在云化场景比较常见。Overlay 下面是受控的 VPC 网络,当出现不属于 VPC 管辖范围中的 IP 或者 MAC,VPC 将不允许此 IP/MAC 穿越。出现这种情况时,我们都利用 Overlay 方式来做。
隔离方式:
隔离方式与多种户型相关(用户与用户之间的隔离方式),隔离方式分为 FLAT、VLAN、VXLAN 三种:
 FLAT:纯扁平网络,无隔离;
 VLAN:VLAN 机房中使用偏多,但实际上存在一个问题?就是它总的租户数量受限。众所周知,VLAN 具有数量限制。
 VXLAN:VXLAN 是现下较为主流的一种隔离方式。因为它的规模性较好较大,且它基于 IP 穿越方式较好。

|技术特点|

 典型的容器网络实现方案
容器网络可能时Kubernetes领域最为百花齐放的一个领域,依照IaaS层的配置、外部物理网络的设备、性能or灵活优先,可以有不同的实现:
Flannel,最为普遍的实现,提供多种网络backend实现,覆盖多种场景
Calico,采用BGP提供网络直连,功能丰富,对底层网络有要求
Canal(Flannel for network + Calico for Firewalling),嫁接型创新项目
Ciilium,基于eBPF和XDP的高性能Overlay网络方案
Kube-router,同时采用BGP提供网络直连,集成基于LVS的负载均衡能力
Pomana,才赢BGP or OSPF 提供网络直连能力的方案
WeaveNet,采用UDP封装实现L2 Overlay,支持用户态(慢,可加密)/内内核态(快,不能加密)两种实现
 Flannel 方案
图片.png

Flannel 方案是目前使用最为普遍的。如上图所示,可以看到一个典型的容器网方案。它首先要解决的是 container 的包如何到达 Host,这里采用的是加一个 Bridge 的方式。它的 backend 其实是独立的,也就是说这个包如何离开 Host,是采用哪种封装方式,还是不需要封装,都是可选择的。
现在来介绍三种主要的 backend:
 一种是用户态的 udp,这种是最早期的实现;
 然后是内核的 Vxlan,这两种都算是 overlay 的方案。Vxlan 的性能会比较好一点,但是它对内核的版本是有要求的,需要内核支持 Vxlan 的特性功能;
 如果你的集群规模不够大,又处于同一个二层域,也可以选择采用 host-gw 的方式。这种方式的 backend 基本上是由一段广播路由规则来启动的,性能比较高。

|资料来源|

名词定义:https://blog.csdn.net/bbwangj/article/details/82355337

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云术语库提供术语的标准定义、缩略语、术语用法及多语言等,提供术语的增删改查等功能。

官方博客
官网链接