CN108810080A - 一种基于Docker Swarm容器集群的网络负载均衡系统及其搭建方法与工作方法 - Google Patents

一种基于Docker Swarm容器集群的网络负载均衡系统及其搭建方法与工作方法 Download PDF

Info

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
Application number
CN201810369561.7A
Other languages
English (en)
Inventor
周晓天
鲁洪宽
张海霞
王茹意
林成浴
袁东风
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Qingdao Campus of Naval Aviation University of PLA
Original Assignee
Shandong University
Qingdao Campus of Naval Aviation University of PLA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong University, Qingdao Campus of Naval Aviation University of PLA filed Critical Shandong University
Priority to CN201810369561.7A priority Critical patent/CN108810080A/zh
Publication of CN108810080A publication Critical patent/CN108810080A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Abstract

本发明涉及一种基于Docker Swarm容器集群的网络负载均衡系统及其搭建方法与工作方法。所述网络负载均衡系统包括反向代理服务器、宿主机和多个后台Web服务器;所述宿主机包括多个服务器主机;所述反向代理服务器接受来自Internet的连接请求,将所述连接请求转发给内部网络上的后台Web服务器,后台Web服务器输出结果并将输出的结果返回给Internet上请求连接的客户端。本发明利用Docker Swarm容器集群,将多台装有Docker客户端的服务器联系构成集群;整个集群由多态服务器构成,拥有足够的硬件资源和计算能力,可以处理更大的网络负载;克服了单台服务器硬件资源和计算能力有限的缺点。

Description

一种基于Docker Swarm容器集群的网络负载均衡系统及其搭 建方法与工作方法
技术领域
本发明涉及一种基于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服务器处理访问请求,实现网络负载均衡。
CN201810369561.7A 2018-04-24 2018-04-24 一种基于Docker Swarm容器集群的网络负载均衡系统及其搭建方法与工作方法 Pending CN108810080A (zh)

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 (6)

* Cited by examiner, † Cited by third party
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负载均衡实现集群部署的方法
CN110825523B (zh) * 2019-11-02 2024-04-26 上海新炬网络信息技术股份有限公司 基于Weblogic负载均衡实现集群部署的方法

Citations (4)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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集群的任务调度方法
US8583650B2 (en) Automated management of software images for efficient resource node building within a grid environment
JP2018088293A (ja) 単一テナント及び複数テナント環境を提供するデータベースシステム
CN103414761A (zh) 一种基于Hadoop架构的移动终端云资源调度方法
US7877457B2 (en) Peer to peer gateway
Essa et al. Mobile agent based new framework for improving big data analysis
CN103425511A (zh) 云计算环境中应用软件安装部署的系统及方法
US11487591B1 (en) Automatically configuring execution of a containerized application
CN111158859A (zh) 基于麒麟操作系统的应用管理系统及其实现与使用方法
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
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
Mangayarkarasi et al. Highly scalable and load balanced web server on AWS cloud
US11297133B1 (en) Deploying a content distribution network using resources from cloud service providers
Liu et al. A memory configuration method for virtual machine based on user preference in distributed cloud
Cambazoglu et al. Data-parallel Web crawling models
Li et al. The Elastic Cloud Platform for the Large-Scale Domain Name System

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