首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Swarm模式覆盖网络安全模型(引擎) | Swarm mode overlay network security model (Engine)

Docker Engine群集模式的覆盖网络可以安全地开箱即用。群组节点使用八卦协议交换覆盖网络信息。默认情况下,节点使用GCM模式下的AES算法对通过八卦交换的信息进行加密和认证。群中的管理器节点每12小时旋转一次用于加密八卦数据的密钥。

您还可以加密覆盖网络上不同节点上的容器之间交换的数据。要启用加密,创建覆盖网络时要通过--opt encrypted标志:

代码语言:javascript
复制
$ docker network create --opt encrypted --driver overlay my-multi-host-network

dt0zvqn0saezzinc8a5g4worx

当您启用覆盖加密时,Docker会在所有节点之间创建IPSEC隧道,在这些节点上调度连接到覆盖网络的服务的任务。这些通道在GCM模式下也使用AES算法,管理器节点每12小时自动旋转一次密钥。

不要将Windows节点附加到加密的覆盖网络。 Windows上不支持覆盖网络加密。如果Windows节点尝试连接到加密的覆盖网络,则不会检测到错误,但该节点将无法通信。

群集模式覆盖网络和非托管容器

因为用于群集模式的覆盖网络使用来自管理器节点的加密密钥来加密八卦通信,所以只有群集中作为任务运行的容器才能访问密钥。因此,使用docker run(非托管容器)在群集模式外启动的容器无法附加到覆盖网络。

例如:

代码语言:javascript
复制
$ docker run --network my-multi-host-network nginx

docker: Error response from daemon: swarm-scoped network
(my-multi-host-network) is not compatible with `docker create` or `docker
run`. This network can only be used by a docker service.

要解决这种情况,请将非托管容器迁移到托管服务。例如:

代码语言:javascript
复制
$ docker service create --network my-multi-host-network my-image

由于swarm模式是可选功能,因此Docker引擎可以保持向后兼容性。如果您愿意,您可以继续依赖第三方键值存储来支持覆盖网络。然而,强烈鼓励切换到群模式。除了本文中介绍的安全优势外,swarm模式还可以充分利用新服务API提供的更高的可伸缩性。

扫码关注腾讯云开发者

领取腾讯云代金券