首页 > 其他分享 >常见k8s开源网络组件

常见k8s开源网络组件

时间:2023-06-19 21:32:58浏览次数:45  
标签:容器 网络 节点 开源 组件 vSwitch k8s Calico 路由

目前,已经有多个开源组件支持容器网络模型。常见的网络组件,包括Flannel、Open vSwitch、直接路由和Calico。

1.Flannel

Flannel之所以可以搭建k8s依赖的底层网络,是因为它能实现以下两个功能。

(1)它能协助k8s,给每一个Node上的Docker容器分配互相不冲突的IP地址。

(2)它能在这些IP地址之间建立一个覆盖网络(Overlay Network),通过这个覆盖网络,将数据包原封不动地传递到目标容器内。

2.Open vSwitch

Open vSwitch是一个开源的虚拟交换软件,类似于Linux中的Bridge,但是功能要复杂得多。Open vSwitch的网桥可以直接建立多种通信通道(隧道),如Open vSwitch with GRE/VxLAN。这些通道的建立可以很容易地通过OVS的配置命令实现。在k8s、Docker场景下,通常主要建立L3到L3的隧道。

3.直接路由

通过直接手动写路由的方式,以实现Node之间的网络通信功能。该直接路由配置方法的问题是,在集群节点发生变化时,需要手动维护每个Node上的路由表信息,效率很低。为了有效管理这些动态变化的网络路由信息,动态地让其他Node都感知到,需要使用动态路由发现协议来同步这些变化。

在实现这些动态路由发现协议的开源软件中,常用的有Quagga、Zebra等。

4.Calico

Calico是容器网络的又一种解决方案,与其他虚拟网络最大的不同是,它没有采用overlay网络做报文的转发,提供了纯3层的网络模型。三层通信模型表示每个容器都通过IP直接通信,中间通过路由转发找到对方。

在这个过程中,容器所在的节点类似于传统的路由器,提供了路由查找的功能。要想路由能够正常工作,每个虚拟路由器(容器所在的主机节点)必须有某种方法知道整个集群的路由信息,Calico采用的是BGP路由协议,其全称是Border Gateway Protocol。

除了能用于容器集群平台Kubernetes、共有云平台AWS、GCE等,也能很容易地集成到openstack等IaaS平台。

Calico在每个计算节点利用Linux Kernel实现了一个高效的vRouter来负责数据转发。每个vRouter通过BGP协议把在本节点上运行的容器的路由信息向整个Calico网络广播,并自动设置到达其他节点的路由转发规则。

Calico保证所有容器之间的数据流量都是通过IP路由的方式完成互联互通的。Calico节点组网可以直接利用数据中心的网络结构(L2或者L3),不需要额外的NAT、隧道或者Overlay Network,没有额外的封包解包,能够节约CPU运算,提高网络通信效率。

标签:容器,网络,节点,开源,组件,vSwitch,k8s,Calico,路由
From: https://blog.51cto.com/key3feng/6517471

相关文章

  • 浅析开源容器标准——OCI
    1、导语容器技术火起来了以后,Docker的容器镜像和容器运行时已然成为行业的标准。此后,为了推进容器生态的健康发展。在Linux基金会的主导下,Docker和各大云厂商Google,Amazon,CloudFoundary,Microsoft积极响应于2015年成立了"OpenContainerInitiative",旨在主导容器的生态发......
  • 记录--Vue3 封装 ECharts 通用组件
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助按需导入的配置文件配置文件这里就不再赘述,内容都是一样的,主打一个随用随取,按需导入。import*asechartsfrom"echarts/core";//引入用到的图表import{LineChart,typeLineSeriesOption}from"echarts/......
  • SAP Spartacus 开源项目中 $skipComponentStyles 的作用介绍
    SAPSpartacus和Angular开发的前端应用中的$skipComponentStyles是用于跳过组件样式加载的一个标志。在理解$skipComponentStyles的作用之前,我们先来了解一下SAPSpartacus。SAPSpartacus是一个开源的电子商务前端框架,用于构建可扩展、可定制的电子商务网站。它基于An......
  • 【工程应用八】终极的基于形状匹配方案解决(小模型+预生成模型+无效边缘去除+多尺度+各
      我估摸着这个应该是关于形状匹配或者模版匹配的最后一篇文章了,其实大概是2个多月前这些东西都已经弄完了,只是一直静不下来心整理文章,提醒一点,这篇文章后续可能会有多次修改(但不会重新发文章,而是在后台直接修改或者增加),所以有需要的朋友可以随时重复查看。 这次带来的更新......
  • 在.Net Core6中使用log4net组件写日志到本地文件的操作流程
    原文链接:https://blog.csdn.net/kevin860/article/details/1068810621.引用包: Log4Net  Microsoft.Extensions.Logging.Log4Net.AspNetCore Microsoft.Extensions.Logging //loggingbuilder.AddFilter该方法需要引入Microsoft.Extensions.Logging名称空间 ......
  • k8s Deployment 金丝雀发布
    创建应用depoly-demoapp-v10.yamlapiVersion:v1kind:Namespacemetadata:name:demoapp---apiVersion:apps/v1kind:Deploymentmetadata:name:demoapp-deploymentnamespace:demoappspec:replicas:3selector:matchLabels:app:demoapp......
  • 2023年十大最受欢迎的Flutter开源应用程序
    原文出处:https://juejin.cn/post/7245170503798538296在移动应用开发领域,Flutter以其跨平台能力和漂亮的用户界面获得了巨大的人气。随着其开发者社区的不断壮大,Flutter生态系统已经见证了众多开源应用程序的诞生。这些开源应用不仅展示了Flutter的多功能性,而且还为开发者提供......
  • StencilJs学习之组件装饰器
    stenciljs可以方便的构建交互式组件支持以下装饰器componentstatepropwatchmethodelementeventlistenComponent装饰器@Component是一个装饰器,它将TypeScript类指定为Stencil组件。每个模板组件在构建时都会转换为Webcomponent。import{Component}from......
  • (转)kubernetes(k8s) yaml 文件详解2
    原文:https://juejin.cn/post/7202145223014252602#heading-0一、K8S支持的文件格式kubernetes支持YAML和JSON文件格式管理资源对象。JSON格式:主要用于api接口之间消息的传递YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,较易读1、yaml和json的主要区......
  • 华为云邓明昆:云原生时代,以开源赋能数字化转型
    摘要:云原生技术以“极致弹性、分布式、松耦合、高韧性”等特征,可有效帮助企业实现基础架构升级,业务快速创新。近日,以“开源赋能,普惠未来”为主题的开放原子全球开源峰会在北京亦创国际会展中心顺利举行。其中,由华为云承办的以“探索云原生技术发展与应用实践,赋能企业数字化转型”......