add dev doc on architecture of network
This commit is contained in:
parent
43e9a35839
commit
5874edbf81
|
@ -0,0 +1,30 @@
|
|||
# Architecture of Network
|
||||
|
||||
## Architecture of container's networks
|
||||
在目前版本中,为了规避VLAN耗尽的问题,采用了新型的独享式虚拟网络结构,完全去掉了VLAN,其结构如下图:
|
||||
|
||||
![](./ovs_arch.png)
|
||||
|
||||
在这个结构中,有如下几个要点:
|
||||
|
||||
1.每个用户拥有一个独立的虚拟网。
|
||||
|
||||
2.只要物理机有容器就有用户的虚拟网桥。每个用户容器通过Veth Pair连接到宿主机上的用户虚拟网桥(OVS网桥)。网桥命名为"docklet-br-<用户id>"。
|
||||
|
||||
3.每个虚拟网是星型拓扑,网关物理机和非网关物理机通过GRE隧道连接。在两个物理机之间可能存在多个GRE隧道(不同用户拥有一个),以用户的id作为key值区分。
|
||||
|
||||
4.网桥和GRE隧道是动态创建和删除,用户启动(start)容器时才会创建相应网络(包括网桥和GRE隧道),用户停止(stop)容器时会调用/conf/lxc-script/lxc-ifdown
|
||||
脚本停止该容器的网络。
|
||||
|
||||
5.分为集中式网关部署和分布式网关部署两种模式,即网关是集中式都部署在单Master物理机上,还是分布式部署到不同的Worker物理机上。上图展示的是分布式部署的
|
||||
情况。网关与外部网通讯仍需通过NAT/iptables。
|
||||
|
||||
## Processing users' requests (Workspace requests)
|
||||
对于用户请求的处理过程可以看出Docklet的结构,其处理过程如下两图,首先是Workspace请求部分。
|
||||
|
||||
![](./workspace_requests.png)
|
||||
|
||||
## Processing users' requests (Other requests)
|
||||
其他请求部分。
|
||||
|
||||
![](./other_requests.png)
|
Loading…
Reference in New Issue