docker系列—覆盖网络

本文深入探讨Docker覆盖网络的概念,包括overlay网络的创建、加密、自定义设置以及在群集服务和独立容器中的应用。介绍了如何配置网络以实现安全通信、端口发布和负载平衡。

覆盖网络

overlay网络驱动程序会创建多个docker进程主机之间的分布式网络。该网络位于(覆盖)特定于主机的网络之上,允许连接到它的容器(包括群集服务容器)安全地进行通信。Docker透明地处理每个数据包与Docker守护程序主机和正确的目标容器之间正确的的路由。

初始化swarm或将Docker主机加入现有swarm时,会在该Docker主机上创建两个新网络:

  • 一个称为覆盖网络ingress,处理与群集服务相关的控制和数据流量。创建群组服务并且不将其连接到用户定义的覆盖网络时,ingress默认连接到网络。
  • 一个名为的桥接网络docker_gwbridge,它将各个Docker守护程序连接到参与该群集的其他守护进程。

可以使用与创建用户定义bridge网络docker network create相同的方式创建用户定义的overly网络。服务或容器一次可以连接到多个网络。服务或容器只能通过它们各自连接的网络进行通信。

虽然可以将swarm服务和独立容器连接到覆盖网络,但默认行为和配置问题是不同的。因此,本主题的其余部分分为适用于所有覆盖网络的操作,适用于群集服务网络的操作以及适用于独立容器使用的覆盖网络的操作。

所有覆盖网络的操作

创建覆盖网络

先决条件:
使用覆盖网络的Docker守护程序的防火墙规则

  • 需要打开以下端口,以往返于参与覆盖网络的每个Docker主机的流量:

    • 用于群集管理通信的TCP端口2377
    • TCP和UDP端口7946,用于节点之间的通信
    • UDP端口4789,用于覆盖网络流量
  • 在创建覆盖网络之前,需要使用初始化Docker守护进程为swarm管理器,docker swarm init或者使用将该Docker守护进程加入现有的swarm docker swarm join。这两种方法均会创建默认的ingress覆盖网络,默认情况下,群集服务会使用该 覆盖网络。即使从未计划使用群体服务,也需要这样做。之后,可以创建其他用户定义的覆盖网络。

要创建用于群服务的覆盖网络,请使用以下命令:

docker network create -d overlay my-overlay

要创建可由群集服务或 独立容器用于与在其他Docker守护程序上运行的其他独立容器通信的覆盖网络,请添加–attachable标志:

docker network create -d overlay --attachable my-attachable-overlay

以指定IP地址范围,子网,网关和其他选项。详情 docker network create --help请见。

加密覆盖网络上的流量

加密覆盖网络上的流量
默认情况下,在GCM模式下使用AES算法对所有群集服务

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值