CN108810080A - 一种基于Docker Swarm容器集群的网络负载均衡***及其搭建方法与工作方法 - Google Patents
一种基于Docker Swarm容器集群的网络负载均衡***及其搭建方法与工作方法 Download PDFInfo
- Publication number
- CN108810080A CN108810080A CN201810369561.7A CN201810369561A CN108810080A CN 108810080 A CN108810080 A CN 108810080A CN 201810369561 A CN201810369561 A CN 201810369561A CN 108810080 A CN108810080 A CN 108810080A
- Authority
- CN
- China
- Prior art keywords
- server
- docker
- host
- network load
- load balance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于Docker Swarm容器集群的网络负载均衡***及其搭建方法与工作方法。所述网络负载均衡***包括反向代理服务器、宿主机和多个后台Web服务器;所述宿主机包括多个服务器主机;所述反向代理服务器接受来自Internet的连接请求,将所述连接请求转发给内部网络上的后台Web服务器,后台Web服务器输出结果并将输出的结果返回给Internet上请求连接的客户端。本发明利用Docker Swarm容器集群,将多台装有Docker客户端的服务器联系构成集群;整个集群由多态服务器构成,拥有足够的硬件资源和计算能力,可以处理更大的网络负载;克服了单台服务器硬件资源和计算能力有限的缺点。
Description
技术领域
本发明涉及一种基于Docker Swarm容器集群的网络负载均衡***及其搭建方法与工作方法,属于云计算虚拟化的技术领域。
背景技术
云计算技术是IT产业界的一场技术革命,它能够按需部署计算资源。从本质上讲,云计算是指用户终端通过远程连接获取存储、计算、数据库等计算资源。虚拟化技术是云计算技术的核心组成之一,是将各种计算及存储资源充分整合和高效利用的关键技术,包括服务器虚拟化和桌面虚拟化。
Docker作为新兴的轻量级虚拟化技术,与传统的VM相比,它更轻量,启动速度更快,单台硬件上可同时跑成百上千个容器,所以非常适合在业务高峰期通过启动大量容器进行横向扩展。网络负载均衡技术是利用一定的分配策略将网络负载平衡地分摊到网络集群的各个操作单元上,使得单个重负载任务能够分担到多个单元上并行处理,或者使得大量并发访问或数据流分担到多个单元上分别处理,从而减少用户的等待响应时间。
Docker Swarm是一个用于创建Docker容器集群的工具,提供API和CLI来管理运行Docker的集群,它的功能和使用本地的Docker并没有本质的区别。但是可以通过增加Node带来很好的扩展性。理论上,可以通过增加节点的方式拥有一个无限大的Docker主机。
中国专利公开号CN CN106657248A公开了一种基于Docker容器的网络负载均衡***及其搭建方法,该方法采用单台服务器,在服务器中开启容器作为Web服务器来均衡网络负载。
该方法存在如下问题:1)单台服务器硬件资源和计算能力有限,对于一些大型企业,单台服务器做负载均衡***达不到要求。2)当服务器中的容器出现宕机的情况,无法自动修复,只能手动重启或者另开启一个容器。
发明内容
针对现有技术的不足,本发明提供一种基于Docker Swarm容器集群的网络负载均衡***。
本发明还提供一种上述网络负载均衡***的搭建方法。
本发明还提供一种上述网络负载均衡***的工作方法。
本发明的技术方案为:
一种基于Docker Swarm容器集群的网络负载均衡***,包括反向代理服务器、宿主机和多个后台Web服务器;所述宿主机包括多个服务器主机;所述反向代理服务器接受来自Internet的连接请求,将所述连接请求转发给内部网络上的后台Web服务器,后台Web服务器输出结果并将输出的结果返回给Internet上请求连接的客户端。
服务器主机为整个网络负载均衡***的硬件基础,有较高处理能力、稳定性、可靠性。后台Web服务器指网站服务器,是驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
根据本发明优选的,所述服务器主机为DELL PowerEdge R730服务器,所述反向代理服务器为Nginx服务器,所述后台Web服务器为Apache服务器;
根据本发明优选的,所述服务器主机安装Ubuntu14.04操作***。Ubuntu14.04为支持Docker的Linux操作***中相对稳定的版本。
一种上述网络负载均衡***的搭建方法,具体步骤包括:
1)准备宿主机,安装配置Docker环境;
2)在每台服务器主机上安装Docker Swarm,选择一台服务器主机作为主节点服务器,其他服务器主机作为从节点服务器,配置服务器集群;
3)在宿主机根目录下建立Docker容器所需的主文件夹,主文件夹包括能够挂载的文件夹,文件夹中存放有网页代码;
4)在主节点服务器上创建一个空白容器;所述空白容器中不包括任何软件;
5)在步骤4)创建的空白容器中安装Apache服务器,并配置编程环境;
6)通过Docker的commit指令以步骤5)安装Apache服务器后的容器为模板创建Docker容器镜像;
7)以步骤6)创建的Docker容器镜像为模板,在主节点服务器上通过dockerservice create指令创建Docker容器;
8)在主节点服务器中安装Nginx服务器作为反向代理服务器,并修改反向代理服务器的default文件,使反向代理服务器支持PHP、Java或ASP语言写的网页代码;
9)在所述宿主机中安装配置PHP编程环境、Java编程环境或ASP编程环境;
10)修改Nginx服务器的nginx.conf文件,在nginx.conf文件中添加负载均衡的配置代码,平衡访问量或流量;
根据本发明优选的,所述步骤1)中,安装配置Docker环境的过程通过ubuntu***的apt-get命令行直接安装实现。
根据本发明优选的,所述步骤3)中还包括宿主机对所述主文件夹中存放的网页代码实时更新的步骤。
根据本发明优选的,所述步骤5)中的编程环境为PHP编程环境、Java编程环境或ASP编程环境。
根据本发明优选的,所述步骤7)中,所述docker service create指令包括,创建容器数量、挂载的文件夹位置,并将宿主机的端口与Docker容器要暴露的端口连接。
根据本发明优选的,所述步骤10)中,Nginx服务器内的负载均衡算法包括,Nginx服务器内置的轮询、加权轮询、ip_hash、fair和url_hash。
一种上述网络负载均衡***的工作方法,具体步骤包括:
A、用户通过域名或IP地址访问网络负载均衡***搭载的网站,访问请求到达主节点服务器中的反向代理服务器;
B、反向代理服务器将访问请求分配给各个从节点服务器容器里的后台Web服务器,后台Web服务器处理访问请求,实现网络负载均衡。
本发明的有益效果为:
1.本发明所述基于Docker Swarm容器集群的网络负载均衡***,利用DockerSwarm容器集群,将多台装有Docker客户端的服务器联系构成集群;整个集群由多态服务器构成,拥有足够的硬件资源和计算能力,可以处理更大的网络负载;克服了单台服务器硬件资源和计算能力有限的缺点;
2.本发明所述基于Docker Swarm容器集群的网络负载均衡***,利用DockerSwarm管理集群,当服务器中的容器出现宕机情况时会自动开启新的容器,保证当前运行的容器数量,不影响负载均衡效率;
3.本发明所述基于Docker Swarm容器集群的网络负载均衡***,通过反向代理服务器将访问请求分配给各个从节点服务器容器里的后台Web服务器,降低了每台Web服务器的负载,平衡访问量或流量。
附图说明
图1为本发明所述基于Docker Swarm容器集群的网络负载均衡***的结构示意图。
具体实施方式
下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。
实施例1
如图1所示。
一种基于Docker Swarm容器集群的网络负载均衡***,包括反向代理服务器、宿主机和多个后台Web服务器;所述宿主机包括多个服务器主机;所述反向代理服务器接受来自Internet的连接请求,将所述连接请求转发给内部网络上的后台Web服务器,后台Web服务器输出结果并将输出的结果返回给Internet上请求连接的客户端。
服务器主机为整个网络负载均衡***的硬件基础,有较高处理能力、稳定性、可靠性。后台Web服务器指网站服务器,是驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
所述服务器主机为DELL PowerEdge R730服务器,所述反向代理服务器为Nginx服务器,所述后台Web服务器为Apache服务器;
所述服务器主机安装Ubuntu14.04操作***。Ubuntu14.04为支持Docker的Linux操作***中相对稳定的版本。
DELL PowerEdge R730服务器,配置为48核CPU、96G内存、8TB本地硬盘;Nginx服务器作为一个轻量级、高性能的Web server,其配置灵活多样,可在配置负载均衡的同时合理地融合其他功能,形成一套可以满足实际需求的配置方案;Apache服务器是世界使用排名第一的Web服务器软件,简单、速度快、性能稳定,并且很好的支持PHP语言(目前Web开发最主流的语言)。
实施例2
一种如实施例1所述的网络负载均衡***的搭建方法,具体步骤包括:
1)准备宿主机,安装配置Docker环境;安装配置Docker环境的过程通过ubuntu***的apt-get命令行直接安装实现。
2)在每台服务器主机上安装Docker Swarm,选择一台服务器主机作为主节点服务器,其他服务器主机作为从节点服务器,配置服务器集群;
3)在宿主机根目录下建立Docker容器所需的主文件夹,主文件夹包括能够挂载的文件夹,文件夹中存放有网页代码;
4)在主节点服务器上创建一个空白容器;所述空白容器中不包括任何软件;
5)在步骤4)创建的空白容器中安装Apache服务器,并配置编程环境;所述编程环境为PHP编程环境。
6)通过Docker的commit指令以步骤5)安装Apache服务器后的容器为模板创建Docker容器镜像;
7)以步骤6)创建的Docker容器镜像为模板,在主节点服务器上通过dockerservice create指令创建Docker容器;所述docker service create指令包括,创建容器数量、挂载的文件夹位置,并将宿主机的端口与Docker容器要暴露的端口连接。
8)在主节点服务器中安装Nginx服务器作为反向代理服务器,并修改反向代理服务器的default文件,使反向代理服务器支持PHP、Java或ASP语言写的网页代码;
9)在所述宿主机中安装配置PHP编程环境、Java编程环境或ASP编程环境;
10)修改Nginx服务器的nginx.conf文件,在nginx.conf文件中添加负载均衡的配置代码,平衡访问量或流量;Nginx服务器内的负载均衡算法包括,Nginx服务器内置的轮询、加权轮询、ip_hash、fair和url_hash。
实施例3
如实施例3所述的网络负载均衡***的搭建方法,进一步的,所述步骤3)中还包括宿主机对所述主文件夹中存放的网页代码实时更新的步骤。
实施例4
一种如实施例1所述网络负载均衡***的工作方法,具体步骤包括:
A、用户通过域名或IP地址访问网络负载均衡***搭载的网站,访问请求到达主节点服务器中的反向代理服务器;
B、反向代理服务器将访问请求分配给各个从节点服务器容器里的后台Web服务器,后台Web服务器处理访问请求,实现网络负载均衡。
Claims (9)
1.一种基于Docker Swarm容器集群的网络负载均衡***,其特征在于,包括反向代理服务器、宿主机和多个后台Web服务器;所述宿主机包括多个服务器主机;所述反向代理服务器接受来自Internet的连接请求,将所述连接请求转发给内部网络上的后台Web服务器,后台Web服务器输出结果并将输出的结果返回给Internet上请求连接的客户端。
2.根据权利要求1所述的基于Docker Swarm容器集群的网络负载均衡***,其特征在于,所述服务器主机为DELL PowerEdge R730服务器,所述反向代理服务器为Nginx服务器,所述后台Web服务器为Apache服务器。
3.一种如权利要求1或2所述网络负载均衡***的搭建方法,其特征在于,具体步骤包括:
1)准备宿主机,安装配置Docker环境;
2)在每台服务器主机上安装Docker Swarm,选择一台服务器主机作为主节点服务器,其他服务器主机作为从节点服务器,配置服务器集群;
3)在宿主机根目录下建立Docker容器所需的主文件夹,主文件夹包括能够挂载的文件夹,文件夹中存放有网页代码;
4)在主节点服务器上创建一个空白容器;
5)在步骤4)创建的空白容器中安装Apache服务器,并配置编程环境;
6)通过Docker的commit指令以步骤5)安装Apache服务器后的容器为模板创建Docker容器镜像;
7)以步骤6)创建的Docker容器镜像为模板,在主节点服务器上通过docker servicecreate指令创建Docker容器;
8)在主节点服务器中安装Nginx服务器作为反向代理服务器,并修改反向代理服务器的default文件,使反向代理服务器支持PHP、Java或ASP语言写的网页代码;
9)在所述宿主机中安装配置PHP编程环境、Java编程环境或ASP编程环境;
10)修改Nginx服务器的nginx.conf文件,在nginx.conf文件中添加负载均衡的配置代码,平衡访问量或流量。
4.根据权利要求3所述的网络负载均衡***的搭建方法,其特征在于,所述步骤1)中,安装配置Docker环境的过程通过ubuntu***的apt-get命令行直接安装实现。
5.根据权利要求3所述的网络负载均衡***的搭建方法,其特征在于,所述步骤3)中还包括宿主机对所述主文件夹中存放的网页代码实时更新的步骤。
6.根据权利要求3所述的网络负载均衡***的搭建方法,其特征在于,所述步骤5)中的编程环境为PHP编程环境、Java编程环境或ASP编程环境。
7.根据权利要求3所述的网络负载均衡***的搭建方法,其特征在于,所述步骤7)中,所述docker service create指令包括,创建容器数量、挂载的文件夹位置,并将宿主机的端口与Docker容器要暴露的端口连接。
8.根据权利要求3所述的网络负载均衡***的搭建方法,其特征在于,所述步骤10)中,Nginx服务器内的负载均衡算法包括,Nginx服务器内置的轮询、加权轮询、ip_hash、fair和url_hash。
9.一种如权利要求1或2所述网络负载均衡***的工作方法,其特征在于,具体步骤包括:
A、用户通过域名或IP地址访问网络负载均衡***搭载的网站,访问请求到达主节点服务器中的反向代理服务器;
B、反向代理服务器将访问请求分配给各个从节点服务器容器里的后台Web服务器,后台Web服务器处理访问请求,实现网络负载均衡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810369561.7A CN108810080A (zh) | 2018-04-24 | 2018-04-24 | 一种基于Docker Swarm容器集群的网络负载均衡***及其搭建方法与工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810369561.7A CN108810080A (zh) | 2018-04-24 | 2018-04-24 | 一种基于Docker Swarm容器集群的网络负载均衡***及其搭建方法与工作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108810080A true CN108810080A (zh) | 2018-11-13 |
Family
ID=64093962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810369561.7A Pending CN108810080A (zh) | 2018-04-24 | 2018-04-24 | 一种基于Docker Swarm容器集群的网络负载均衡***及其搭建方法与工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108810080A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542590A (zh) * | 2018-11-28 | 2019-03-29 | 上海酷栈科技有限公司 | Docker集群多租户下虚拟Socket通信的方法 |
CN109754849A (zh) * | 2018-12-24 | 2019-05-14 | 武汉大学 | 一种云计算环境中的个人健康流数据处理***及方法 |
CN109948079A (zh) * | 2019-03-11 | 2019-06-28 | 湖南衍金征信数据服务有限公司 | 一种分布式采集公开页面数据的方法 |
CN109981375A (zh) * | 2019-04-04 | 2019-07-05 | 航天恒星科技有限公司 | 用于卫星通信仿真网络构建的方法和设备 |
CN110825523A (zh) * | 2019-11-02 | 2020-02-21 | 上海新炬网络信息技术股份有限公司 | 基于Weblogic负载均衡实现集群部署的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105979009A (zh) * | 2016-07-06 | 2016-09-28 | 乾云众创(北京)信息科技研究院有限公司 | 一种针对云应用容器的增加负载自动均衡方法 |
CN106657248A (zh) * | 2016-11-01 | 2017-05-10 | 山东大学 | 一种基于Docker容器的网络负载均衡***及其搭建方法、工作方法 |
CN106844000A (zh) * | 2016-12-21 | 2017-06-13 | 北京大学 | 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 |
US20180006886A1 (en) * | 2016-06-29 | 2018-01-04 | International Business Machines Corporation | Automatically tuning middleware in a mobilefirst platform running in a docker container infrastructure |
-
2018
- 2018-04-24 CN CN201810369561.7A patent/CN108810080A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180006886A1 (en) * | 2016-06-29 | 2018-01-04 | International Business Machines Corporation | Automatically tuning middleware in a mobilefirst platform running in a docker container infrastructure |
CN105979009A (zh) * | 2016-07-06 | 2016-09-28 | 乾云众创(北京)信息科技研究院有限公司 | 一种针对云应用容器的增加负载自动均衡方法 |
CN106657248A (zh) * | 2016-11-01 | 2017-05-10 | 山东大学 | 一种基于Docker容器的网络负载均衡***及其搭建方法、工作方法 |
CN106844000A (zh) * | 2016-12-21 | 2017-06-13 | 北京大学 | 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542590A (zh) * | 2018-11-28 | 2019-03-29 | 上海酷栈科技有限公司 | Docker集群多租户下虚拟Socket通信的方法 |
CN109542590B (zh) * | 2018-11-28 | 2022-12-20 | 上海酷栈科技有限公司 | Docker集群多租户下虚拟Socket通信的方法 |
CN109754849A (zh) * | 2018-12-24 | 2019-05-14 | 武汉大学 | 一种云计算环境中的个人健康流数据处理***及方法 |
CN109754849B (zh) * | 2018-12-24 | 2023-02-24 | 武汉大学 | 一种云计算环境中的个人健康流数据处理***及方法 |
CN109948079A (zh) * | 2019-03-11 | 2019-06-28 | 湖南衍金征信数据服务有限公司 | 一种分布式采集公开页面数据的方法 |
CN109981375A (zh) * | 2019-04-04 | 2019-07-05 | 航天恒星科技有限公司 | 用于卫星通信仿真网络构建的方法和设备 |
CN109981375B (zh) * | 2019-04-04 | 2022-04-08 | 航天恒星科技有限公司 | 用于卫星通信仿真网络构建的方法和设备 |
CN110825523A (zh) * | 2019-11-02 | 2020-02-21 | 上海新炬网络信息技术股份有限公司 | 基于Weblogic负载均衡实现集群部署的方法 |
CN110825523B (zh) * | 2019-11-02 | 2024-04-26 | 上海新炬网络信息技术股份有限公司 | 基于Weblogic负载均衡实现集群部署的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106657248A (zh) | 一种基于Docker容器的网络负载均衡***及其搭建方法、工作方法 | |
CN108810080A (zh) | 一种基于Docker Swarm容器集群的网络负载均衡***及其搭建方法与工作方法 | |
CN108469988B (zh) | 一种基于异构Hadoop集群的任务调度方法 | |
JP2018088293A (ja) | 単一テナント及び複数テナント環境を提供するデータベースシステム | |
US11487591B1 (en) | Automatically configuring execution of a containerized application | |
US7877457B2 (en) | Peer to peer gateway | |
Essa et al. | Mobile agent based new framework for improving big data analysis | |
US10931786B1 (en) | Dynamic content placement for content delivery networks | |
CN111158859A (zh) | 基于麒麟操作***的应用管理***及其实现与使用方法 | |
Fan et al. | A live migration algorithm for containers based on resource locality | |
US20240036910A1 (en) | Meta-level management system that aggregates information and functionalities of computational-resource management systems and that provides new management functionalities | |
Timm et al. | Cloud services for the Fermilab scientific stakeholders | |
US11297133B1 (en) | Deploying a content distribution network using resources from cloud service providers | |
Jing et al. | The Community Library Anniance Based on Cloud Computing | |
Wei et al. | Towards a cloud storage data management model based on RNPT network | |
Apolónia et al. | Leveraging deployment models on low-resource devices for cloud services in community networks | |
Revathy et al. | Efficient load re balancing algorithm for distributed file systems | |
Youseff et al. | The case for elastic operating system services in fos | |
Nurwarsito et al. | Implementation of Dynamic Web Server Cluster Based on Operating System-Level Virtualization using Docker Swarm | |
Kalai Arasan et al. | A new GLoSM embedded virtual machine model for big data services in cloud storage systems | |
Moon et al. | High-performance internet file system based on multi-download for convergence computing in mobile communication systems | |
US11861362B1 (en) | Application migration and modernization action completion time forecasting | |
Xu et al. | Campus cloud for data storage and sharing | |
Liu et al. | A memory configuration method for virtual machine based on user preference in distributed cloud | |
Huedo Cuesta et al. | Disk Image Storage, Distribution and Caching for Edge Cloud Infrastructures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181113 |
|
WD01 | Invention patent application deemed withdrawn after publication |