本发明专利技术公开了一种在docker swarm群集下隔离网络的方法,涉及容器技术、网络技术及代理原理技术领域。通过给每个需要监控的应用容器绑定代理,强制将容器的网络请求经过代理转发,通过给应用建立专属网络已经绑定代理程序,可以将应用所有的请求经过代理路由转发,这样代理就可以记录下应用所有的动作;而且我们可以控制代理程序控制访问权限,通过设置应用的专属网络,保证了该应用的所有活动只限制在专属网络中,所有对公有网络的操作都是通过代理程序转发,有效的控制了应用的安全性,避免产生一些不可控的现象。记录每个应用对公有网络所有操作,后期可以通过大数据分析每个应用对于公有网络的依赖以及对于公有网络产生的影响。
A method of isolating network under docker swarm cluster
【技术实现步骤摘要】
一种在dockerswarm群集下隔离网络的方法
本专利技术涉及容器、算法及网络代理领域,尤其涉及一种在dockerswarm群集下隔离网络的方法。
技术介绍
目前swarm群集中,一般情况下,所有的应用都在一个网络中,对于有些我们需要做特殊控制(如网络调用,权限控制,智能路由)的应用就不能做有效的把控。在依赖很多额外组件的情况下,可以实现上述所说的部分功能,但是对于应用的自身的应用来说,依赖组件过多会增加自身的负担,且很多组件会侵入代码,及其不友好。本专利技术通过在安装应用的过程中,绑定对应的代理与其一起运行在专属网络中,由代理对应用进行控制,以达到监控的效果。
技术实现思路
本专利技术的目的是针对现有技术的不足提供了一种在dockerswarm群集下隔离网络的方法,通过给应用建立专属网络已经绑定代理程序,可以将应用所有的请求经过代理路由转发,这样代理就可以记录下应用所有的动作。而且我们可以控制代理程序控制访问权限,来达到给应用进行隔离的目的。一种在dockerswarm群集下隔离网络的方法,具体包括如下步骤:步骤1,基于与docker守护进程交互,调用守护进程提供的相关服务dockerswarmapi构建应用发布系统;步骤2,将待发布的应用容器镜像、容器环境变量、资源限定、服务名称的相关信息通过消息队列客户端程序推送至kafka消息队列;步骤3,发布系统拉取kafka消息,准备发布,通过类似拓扑排序算法确定待发布应用的关联关系,确定安装的先后顺序;步骤4,通过dockerapi创建应用的专属网络启动链接docker守护进程程序,调用docker底层的createservice方法,将应用的镜像,环境变量,参数信息传递给守护进程,docker守护进程创建对应应用;步骤5,通过dockerapi创建具体应用以及对应的代理程序和网络,应用置于步骤5的专属网络中,代理程序置于步骤5的专属网络和公用网络中;步骤6,在专属网络和公用网络中,分别对应用和代理程序设置网络下别名。作为本专利技术一种在dockerswarm群集下隔离网络的方法的进一步优选方案,在步骤1中,在安装dockerswarm的机器上,生成docker.sockUnix域套接字,通过该套接字,可与docker守护进程通信,调用docker底层的各种服务;基于docker创建容器服务构建发布应用系统,进而通过调用docker底层功能创建相应的应用。作为本专利技术一种在dockerswarm群集下隔离网络的方法的进一步优选方案,所述步骤5具体包括:步骤5.1,通过docker守护进程提供的发布服务的功能创建代理程序;步骤5.2,通过docker守护进程提供的创建网络功能创建应用的私有网络。作为本专利技术一种在dockerswarm群集下隔离网络的方法的进一步优选方案,所述步骤6具体包括:步骤6.1,设置代理程序在应用私有网络下的别名为固定名称;步骤6.2,设置代理程序在公有网络下的别名为应用自身的名称。作为本专利技术一种在dockerswarm群集下隔离网络的方法的进一步优选方案,调用dockerapi的方式采用绑定Unix域套接字docker.sock来实现。作为本专利技术一种在dockerswarm群集下隔离网络的方法的进一步优选方案,采用消息队列来现实交互,保证了交互的时序性以及稳定性。作为本专利技术一种在dockerswarm群集下隔离网络的方法的进一步优选方案,创建私有网络,创建应用,以及设置网络下别名的都是通过调用dockerr底层服务来api实现。作为本专利技术一种在dockerswarm群集下隔离网络的方法的进一步优选方案,通过图类似拓扑排序算法来确定应用安装的依赖性。本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:1、本专利技术通过给应用建立专属网络已经绑定代理程序,可以将应用所有的请求经过代理路由转发,这样代理就可以记录下应用所有的动作;而且我们可以控制代理程序控制访问权限,来达到给应用进行隔离的目的。2、本专利技术通过设置应用的专属网络,保证了该应用的所有活动只限制在专属网络中,所有对公有网络的操作都是通过代理程序转发,有效的控制了应用的安全性,避免产生一些不可控的现象。3、通过记录每个应用对公有网络所有操作,后期可以通过大数据分析每个应用对于公有网络的依赖以及对于公有网络产生的影响。附图说明图1本专利技术应用关系图;图2本专利技术springcloudzuul架构图;图3本专利技术应用间调用效果图;图4本专利技术整个方法流程图。具体实施方式本专利技术的方法的几个主要解决步骤如下:一种在dockerswarm群集下隔离网络的方法,如图4所示,具体包括如下步骤:步骤1,基于与docker守护进程交互,调用守护进程提供的相关服务dockerswarmapi构建应用发布系统;步骤2,将待发布的应用容器镜像、容器环境变量、资源限定、服务名称的相关信息通过消息队列客户端程序推送至kafka消息队列;步骤3,发布系统拉取kafka消息,准备发布,通过类似拓扑排序算法确定待发布应用的关联关系,确定安装的先后顺序;步骤4,通过dockerapi创建应用的专属网络启动链接docker守护进程程序,调用docker底层的createservice方法,将应用的镜像,环境变量,参数信息传递给守护进程,docker守护进程创建对应应用;步骤5,通过dockerapi创建具体应用以及对应的代理程序和网络,应用置于步骤5的专属网络中,代理程序置于步骤5的专属网络和公用网络中;步骤6,在专属网络和公用网络中,分别对应用和代理程序设置网络下别名基于以上的步骤,采用的具体实施过程如下:第1步,在安装docker的机器上,找到docker运行产生的docker.sock文件,创建dockerClient客户端,用来发布应用,创建专属网络,创建代理程序。如果需要docker镜像仓库用户名密码健全,则设定鉴权参数。第2步,通过kafkaconsumer不断拉取消息队列中的消息,来不断获取用户需要隔离的应用信息。第3步,将拉取到的各个应用信息通过如下算法进行排序算法描述:A.有ABCDEFG这7个应用,假设C必须在A完成之后做,我们把这种关系定义为"依赖",用符号"A-->C"标识,这7个应用如图1所示B.列出所有的关联关系,生成依赖关系清单R,左右两边分别标记为RL关系清单和RR关系清单,如下:A-->CA-->DA-->GB-->CD-->BD-->EF-->EG-->FB-->GC.约定左边为依赖关系清单R,右边为事情清单,分隔符号“|”前边的事情表示已经本文档来自技高网...
【技术保护点】
1.一种在docker swarm群集下隔离网络的方法,其特征在于,具体包括如下步骤:/n步骤1,基于与docker守护进程交互,调用守护进程提供的相关服务docker swarm api构建应用发布系统;/n步骤2,将待发布的应用容器镜像、容器环境变量、资源限定、服务名称的相关信息通过消息队列客户端程序推送至kafka消息队列;/n步骤3,发布系统拉取kafka消息,准备发布,通过类似拓扑排序算法确定待发布应用的关联关系,确定安装的先后顺序;/n步骤4,通过docker api创建应用的专属网络启动链接docker守护进程程序,调用docker底层的createservice方法,将应用的镜像,环境变量,参数信息传递给守护进程,docker守护进程创建对应应用;/n步骤5,通过docker api 创建具体应用以及对应的代理程序和网络,应用置于步骤5的专属网络中,代理程序置于步骤5的专属网络和公用网络中;/n步骤6,在专属网络和公用网络中,分别对应用和代理程序设置网络下别名。/n
【技术特征摘要】
1.一种在dockerswarm群集下隔离网络的方法,其特征在于,具体包括如下步骤:
步骤1,基于与docker守护进程交互,调用守护进程提供的相关服务dockerswarmapi构建应用发布系统;
步骤2,将待发布的应用容器镜像、容器环境变量、资源限定、服务名称的相关信息通过消息队列客户端程序推送至kafka消息队列;
步骤3,发布系统拉取kafka消息,准备发布,通过类似拓扑排序算法确定待发布应用的关联关系,确定安装的先后顺序;
步骤4,通过dockerapi创建应用的专属网络启动链接docker守护进程程序,调用docker底层的createservice方法,将应用的镜像,环境变量,参数信息传递给守护进程,docker守护进程创建对应应用;
步骤5,通过dockerapi创建具体应用以及对应的代理程序和网络,应用置于步骤5的专属网络中,代理程序置于步骤5的专属网络和公用网络中;
步骤6,在专属网络和公用网络中,分别对应用和代理程序设置网络下别名。
2.根据权利要求1所述的一种在dockerswarm群集下隔离网络的方法,其特征在于,在一个实施方式中,在步骤1中,在安装dockerswarm的机器上,生成docker.sockUnix域套接字,通过该套接字,
可与docker守护进程通信,调用docker底层的各种服务;基于docker创建容器服务构建发布应用系统,进而通过调用docker底层功能创建相应的应用。
3.根据权利...
【专利技术属性】
技术研发人员:陈旋,王冲,朱凯,
申请(专利权)人:江苏艾佳家居用品有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。