的体例来实现这种实现体例就叫做虚拟化收集从收集通信的物理设备到网卡都是用纯软件。
实现收集虚拟化的主要功能它能建立多个隔离的收集空间它们有独自收集栈消息Network Namespace 是 Linux 内核供给的功能是。时候仿佛本人都在独立的收集中不管是虚拟机仍是容器运转的。ace的资本彼此不成见相互之间无法通信并且分歧Network Namesp。

rk叠加收集的手艺来实现分歧节点间容器的彼此通信功能此时我们能够采用一种叫做Overlay Netwo。
间而这些设备是能够零丁联系关系至某个零丁的名称空间利用假如我们的物理机有4块物理网卡我们要建立4个名称空的
们能够利用虚拟网卡设备用纯软件的体例来模仿一组设备来利用但若是我们所具有的名称空间数量跨越物理网卡数量呢此时我。的模仿一种是二层设备一种是三层设备Linux内核级支撑2种级别设备。
让两个容器各自用纯软件的体例建立一对虚拟网卡一半在容器上一半在虚拟互换机上从而实现通信若是在统一个物理机上的两个容器想通信我们的法子就是在这台主机上成立一个虚拟互换机尔后。图所如下示
且与外部收集间接通信由于它们利用的是物理网卡这种体例使得每一个名称空间都能设置装备摆设IP地址并。
个名称空间第三块分给第三个名称空间第四块分给第四个名称空间如上图所示把第一块网卡分派给第一个名称空间第二块分给第二。空间的由于一个设备只能属于一个名称空间此时其它名称空间都是看不见当前地点名称。
口设备是成对呈现的能够模仿为一根网线cLinux内核模仿的二层设备每个收集接;互换机就相当于让一个主机连到一个互换机上去此中一端模仿主机的虚拟网卡另一端模仿虚拟。网桥设备即用软件虚拟互换机的功能Linux内核原生支撑二层虚拟。图所如下示
个容器间的通信体例这就是单节点上两。环境好比我们期望建立的容器要跨互换机通信单节点上两个容器之间的通信也有一些复杂呢
来实现通信那就只能利用NAT手艺了若是一来我们既不克不及桥接又需要与外部。内部的目标而在请求端我们需要做SNAT将数据包通过宿主机的实在网卡转发出去通过DNAT将容器的端口表露到宿主机上通过拜候宿主机的端口来实现拜候容器。做的线c但如许;转换所以效率会比力低由于要进行两次NAT。
就能够实现通信了可是如许一来又具有另一个问题那就是若是C1和C3在分歧收集呢若是不在统一收集我们就必必要通过路由转发才能使其通信也就是我们得在两台互换机之间加一个路由器其实Linux内核本身就是支撑路由转发的只需要我们将路由转发功能打开即可我们做两个虚拟互换机两个互换机上各自毗连分歧的容器如上图所示此时若是要C1和C3通信又该若何实现呢其实我们能够通过名称空间建立一对网卡一端连SW1另一端连SW2如许一来两个互换机就连起来了照理说如许一来C1和C3这两个处于分歧互换机的容器。功能打开如许一来就模仿了一台路由器通过这台路由器来实现路由转发此时我们能够再启动一个容器这个容器里面就跑一个内核并将其转发。
在大规模的虚拟机或容器的场景中利用桥接的体例无疑是自掘坟墓所以我们不应当利用桥接的体例来实现通信如上图所示此时若是C1要与C5进行通信又该若何实现呢若是我们采用桥接的体例很容易发生广播风暴因而。
间毗连到了统一个互换机收集中此时若是两个名称空间的网卡地址设置装备摆设在统一网段那么很明显他们之间是能够互相通信的那么此时若是再有一个名称空间它有建立了一对虚拟网卡一端毗连名称空间一端毗连虚拟互换机此时就相当于两个名称空。图所如下示
PID即可查询出该容器占用的内存大3、然后施行 top -p 历程小
、ps等查看历程内存的号令查看容器的内存占用环境获得容器对应的pid后就能够利用top、pmap了
|