• docker overlay网络详解


    docker网络之所以这么活跃,是因为网络部分的代码单独抽离出来成为docker的网络库,即libnetwork。

    为了标准化网路驱动的开发步骤和支持各种网络驱动,libnetwork中使用了CNM(container network model),CNM定义了构建容器虚拟化网络的模型,同时还提供了可以用于开发多种网络驱动的标准化接口和组件。

    现在我们有两台主机,里面的容器之间要进行通讯的话,要保持一个公式相等,即一个网段=一个广播域=一个VLAN。

    下面介绍一下两个container的通讯构建过程,

    首先会在我们的主机当中构建一个网络,这个网络叫做sanbox,这个是网络容器内的协议栈。

     

    在每个容器里面都会这样的一个设备叫做endpoint,它的作用就是把容器(sandbox)接入到network中去,endpoint最典型的案例就是veth pair

     

    由于它的这个特性,常常被用于构建虚拟网络拓扑。例如连接两个不同的网络命名空间(netns),连接docker容器,连接网桥(Bridge)等,其中一个很常见的案例就是OpenStack Neutron底层用它来构建非常复杂的网络拓扑。veth pair是成对出现的一种虚拟网络设备接口,一端连着网络协议栈,一端彼此相连。如下图所示:

    但是这样的网络拓扑存在一个弊端,随着网络设备的增多,网络连线的复杂度将成倍增长。 如果连接三个netns时,网络连线就成了下图的样子

    而如果连接四个netns时,网络连线就成了下图的样子

    如果有五台设备。。。

    Linux Bridge来将多个隔离的netns连接起来,这样网络连线就非常清爽了。

    network包含的是一组endpoint,同一个network下的endpoint可以通信,network实现的方法就是桥接加VLAN的方式。

     

    什么叫做overlay网络?

    字面意思就是叠加的网络,指的就是在物理网络层上再搭建一层网络,通过某种技术再构建一张相同的网络,这张称为逻辑网。也就是说我们想要两台主机的容器进行通讯,首先这两台主机自己要可以通讯,然后在这个物理机的基础之上部署一张逻辑层的网络,他具有物理网络的所有特性,跟物理网络一模一样

  • 相关阅读:
    项目经验【1】
    cudagdb
    外国名著小说大全
    历史天气查询
    名著小说在线阅读
    NET里ListView只启用竖向Veritcal滚动条Scrollbar(C#)
    XML 中特殊字符转换
    panle 闪烁 通过windowsApi
    selenium的Select下拉框选择
    浅浅的聊一下 WebSocket
  • 原文地址:https://www.cnblogs.com/shetao/p/16249186.html
Copyright © 2020-2023  润新知