www.icesr.com
IT运维工程师的摇篮

docker swarm的网络模型

每个容器都有一个IP地址,有三种overlay的网络模式:
1. Ingress
2. docker_gwbridge
3. user-defined overlay

Ingress Networking
Swarm manager使用ingress负载均衡,将需要对外可用的服务暴露给swarm。

Swarm manager可以自动给这个服务分配一个PublishedPort ,或者你可以为这个服务配置一个在30000-32767之内的PublishedPort 。

实际上,集群内的ingress网络是基于节点端口模式的,每个服务被分配到集群内预留的30000-32000之间的端口。集群内的每个监听这个端口的节点,都可以为那个服务路由流量。这与一个特定的worker节点上运行的服务无关。

特别要注意的是,只有那些暴露端口的服务才需要ingress网络,不对外暴露端口的后端服务,其对应的容器也不会被加到ingress网络中。

外部组件,比如云负载均衡器,可以访问集群中的任意节点,不管这个节点是否运行着服务中的任务。Swarm集群中的所有节点都通过ingress连接到运行的任务实例。因此,ingress遵循节点网络模式,同一个服务在集群的每个节点上都有相同的端口。

docker_gwbridge
default_gwbridge网络只能用在非内部的网络环境下,内部的网络可以加上『-internal』的选项。连接到多主机网络的容器会自动连接到docker_gwbridge网络。这种网络模式让容器可以和集群外产生外部连接,并且在每个worker节点上创建。

Docker Engine提供了多种灵活的网络模式,既可以手动创建docker_gwbridge,也可以让daemon自动创建。除非你需要一个在指定子网的docker_gwbridge,可以用以下方式创建:
$docker network create –subnet={Your prefered subnet } -o com.docker.network.bridge.enable_icc=false -o com.docker.network.bridge.name=docker_gwbridge docker_gwbridge.

User-defined Overlay

这是用户指定的容器的overlay网络模式。一个容器可以在多个user-defined overlay网络中。

未经允许不得转载:冰点网络 » docker swarm的网络模型

分享到:更多 ()

评论 抢沙发

评论前必须登录!