CN110727653A - 多项目负载均衡方法和装置 - Google Patents
多项目负载均衡方法和装置 Download PDFInfo
- Publication number
- CN110727653A CN110727653A CN201910969947.6A CN201910969947A CN110727653A CN 110727653 A CN110727653 A CN 110727653A CN 201910969947 A CN201910969947 A CN 201910969947A CN 110727653 A CN110727653 A CN 110727653A
- Authority
- CN
- China
- Prior art keywords
- project
- container
- load balancing
- file
- network service
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及网络资源部署技术领域,本申请提供一种多项目负载均衡方法和装置,所述多项目负载均衡方法,其包括以下步骤:获取网络服务的业务项目的请求,提取对应的项目文件;根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器;其中,所述pod针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器;将所述初始化容器的项目文件复制到向所述pod分配的文件目录,与所述主容器挂载在该文件目录下的项目文件重新组成共享存储卷,使得所有容器可访问所有项目文件;根据用户的项目请求,所述主容器启动所述负载均衡服务器访问所述共享存储卷,获取所述项目文件。本申请的技术方案可节省服务器资源消耗。
Description
技术领域
本申请涉及网络资源部署技术领域,具体而言,本申请涉及一种多项目负载均衡方法和装置。
背景技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的操作系统,如Linux或Windows等操作系统机器上,也可以实现虚拟化。不同的项目运行于不同的容器中。而容器之间相互之间不会有任何接口,是相互隔离的。
一般情况下,容器里面的资源是隔离的,如果用户需要在容器里面实现负载均衡访问资源,需要在每个容器里面启动一个负载均衡服务器。但是每个容器中的业务项目的程序运行时,必须要单独启动一个负载均衡服务的进程,这样会造成主机资源的浪费。对于产品网络服务而言,每增加一个项目,就需要对应增加相应的负载均衡的配置,从而造成资源的浪费。
发明内容
为克服以上目前就每个业务项目启动使用一个容器,且需单独启动一个负载均衡服务器所造成的资源浪费的技术问题,特提出以下技术方案:
第一方面,本申请提供一种多项目负载均衡方法,其包括以下步骤:
获取网络服务的业务项目的请求,提取对应的项目文件;
根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器;其中,所述pod针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器;
将所述初始化容器的项目文件复制到向所述pod分配的文件目录,与所述主容器挂载在该文件目录下的项目文件重新组成共享存储卷,使得所有容器可访问所有项目文件;
根据用户的项目请求,所述主容器启动所述负载均衡服务器访问所述共享存储卷,获取所述项目文件。
在其中一个实施例中,所述利用k8s集群,根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器的步骤,包括:
利用k8s集群所提供的接口,接收所述业务项目的基础信息;其中,所述基础信息包括所述业务项目对应的代码地址和基础镜像;
根据所述初始化容器的功能的设定,根据所述功能的代码添加构建新镜像;其中,所述新镜像被推送至指定的仓库;
根据所述基础镜像和新镜像,在所述网络服务对应的pod上建立对应的初始化容器。
在其中一个实施例中,所述将所述初始化容器的项目文件复制到向所述pod分配的文件目录的步骤,包括:
根据所述初始化容器的项目文件的复制功能,利用复制文件功能的代码,为所述初始化容器添加构建复制镜像,并将所述复制镜像的操作系统文件对象设为所述pod分配的文件目录。
在其中一个实施例中,所述获取所述网络服务的业务项目的请求的步骤之前,还包括:
获取网络服务的创建请求,提取所述网络服务的业务项目;
利用k8s集群生成对应的pod,在所述pod上针对不同的业务项目建立对应的初始化容器和针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器;
当所述pod分配到k8s集群的工作负载节点时,向所述pod分配一个文件目录,并将各初始化容器的项目文件复制到所述文件目录,同时所述主容器将所有项目文件挂载至所述文件目录下,形成共享存储卷。
在其中一个实施例中,所述提取所述网络服务的业务项目的步骤,包括:
根据所述网络服务的创建请求,分配IP地址创建对应的网络服务;
根据项目文件的标签,提取所述网络服务的业务项目。
在其中一个实施例中,所述利用k8s集群生成对应的pod,在所述pod上针对不同的业务项目建立对应的初始化容器和针对所述网络服务建立一个主容器的步骤,包括:
根据IP地址,选择对应的k8s集群;
拉取每个业务项目的镜像的最新版本,在所述pod上针对不同的业务项目建立对应的初始化容器和针对所述网络服务建立一个主容器。
在其中一个实施例中,所述形成共享存储卷的步骤,包括:
通过脚本将各初始化容器和所述主容器的所有项目文件复制到所述共享存储卷。
在其中一个实施例中,所述主容器启动所述负载均衡服务器访问所述共享存储卷的步骤之前,还包括:
对所有初始化容器的项目文件完成复制。
在其中一个实施例中,所述根据用户的项目请求,所述主容器启动所述负载均衡服务器访问所述共享存储卷,获取对应项目文件的步骤,包括:
根据用户对应的项目请求,启动主容器,利用所述负载均衡服务器监听并拦截到用户的项目请求;
依据所述项目请求,利用项目分区在所述共享存储卷中获取对应的项目文件,并根据所述项目文件跳转至代码文件,执行对应的代码文件。
在其中一个实施例中,所述根据用户的项目请求的步骤之后,包括:
根据所述负载均衡服务器的访问域名,向所述负载均衡服务器转发项目请求。
在其中一个实施例中,所述针对所述主容器配置一个负载均衡服务器的步骤,包括:
根据所述主容器的项目文件的负载均衡功能,利用负载均衡功能的代码,为所述主容器添加构建负载均衡镜像。
第二方面,本申请还提供一种多项目负载均衡装置,其包括:
获取模块,用于获取网络服务的业务项目的请求,提取对应的项目文件;
容器增设模块,用于根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器;其中,所述pod针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器;
共享模块,用于将所述初始化容器的项目文件复制到向所述pod分配的文件目录,与所述主容器挂载在该文件目录下的项目文件重新组成共享存储卷,使得所有容器可访问所有项目文件;
执行模块,用于根据用户的项目请求,所述主容器启动所述负载均衡服务器访问所述共享存储卷,获取所述项目文件。
第三方面,本申请还提供一种服务器,其包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行第一方面任一项实施例的多项目负载均衡方法。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现第一方面任一项实施例所述的多项目负载均衡方法。
本申请所提供的多项目负载均衡方法和装置,将各个业务项目建立对应初始化容器,并将其项目文件复制到该网络服务对应的文件目录中,并与主容器挂载在其上的项目文件,构成共享存储卷,实现容器间项目文件的共享,从而克服容器间相互隔离的技术缺陷。在此基础上,本申请仅在主容器上设立对应的负载均衡服务器,可根据用户的项目请求,启动负载均衡服务器执行对应的业务项目。避免了如现有技术中,需要对每个业务项目建立容器并单独配置负载均衡服务器,而造成资源的浪费情况,以此节省了对资源消耗。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请实施例执行多项目负载均衡方案的应用环境图;
图2是本申请中的一个实施例的多项目负载均衡方案的框架图;
图3是本申请中的一个实施例的多项目负载均衡方法的流程图;
图4为本申请中对应步骤S220的具体详细实施的步骤流程图;
图5是本申请中的另一个实施例的多项目负载均衡方法的流程图;
图6为本申请中对应步骤S240的具体详细实施的步骤流程图;
图7是本申请中的一个实施例的多项目负载均衡装置的结构示意图;
图8为本申请中的一个实施例的服务器的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
参考图1所示,图1是本申请实施例执行多项目负载均衡方案的应用环境图。该实施例中,本申请技术方案是服务器120通过网络接收网络服务的开发人员通过终端设备110作为控制前端,针对每个新增业务项目对应设立的初始化容器,并进行网络服务下的多项目负载均衡。
参考图2,图2是本申请中的一个实施例的多项目负载均衡方案的框架图。
为了克服以上目前就每个业务项目启动使用一个容器,且需单独启动一个负载均衡服务器所造成的资源浪费的技术问题,节约资源利用率,本申请提供了一种多项目负载均衡方案。
参考图3,图3是本申请中的一个实施例的多项目负载均衡方法的流程图。根据该框架图,本申请对应提供了一种多项目负载均衡方法,该多项目负载均衡方法包括以下步骤:
S210、获取网络服务的业务项目的请求,提取对应的项目文件。
对于一个已完成创建的网络服务,根据需要针对该网络服务建立业务项目时,开发人员通过终端设备作为控制前端,将对应的业务项目的设立的请求通过该控制前端向服务器发送。该请求包括该业务项目对应的基础信息和项目文件。当服务器通过控制前端获取到该网络服务的业务项目的请求时,提取该业务项目的对应的项目文件。
在本申请中,所述业务项目的设立的请求可以同时通过控制前端发送多个,服务器针对每个业务项目提取对应的项目文件,并进行临时存储。并根据设定,按顺序依次执行。
S220、根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器;其中,所述pod针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器。
在该步骤中,通过控制前端,利用数据接口,例如API在pod上针对每个增设的业务项目对应建立初始化容器。通过该初始化容器得到对应增设的业务项目的基础信息和项目文件,并将该项目文件暂时保存至该初始化容器中。
对于该步骤中执行阶段的pod,已为该网络服务对应建立一个主容器,并在该主容器中,配置一个负载均衡服务器。
其中,pod,英文全名:Plain old data structure,是C++语言的标准中定义的一类数据结构,pod适用于需要明确的数据底层操作的系统中。
S230、将所述初始化容器的项目文件复制到向所述pod分配的文件目录,与所述主容器挂载在该文件目录下的项目文件重新组成共享存储卷,使得所有容器可访问所有项目文件。
当步骤S220完成后,服务器将该初始化容器的项目文件复制到pod针对该网络服务的分配的文件目录下。而该文件目录是在pod分配到Node上时针对该网络服务所创建的,在本实施例中,是通过k8s集群针对该网络服务在主机上自动分配形成的。
在增设的业务项目的项目文件复制到文件目录之前,所述主容器已将该网络服务下所有的业务项目的项目文件挂载至该文件目录下。该主容器的所挂载至该目录文件的项目文件和增设的业务项目的项目文件重新组成一新的文件目录。由于所有容器,包括增设的初始化容器和主容器把各自的项目文件复制或挂载至该文件目录下,使得原来相互隔离的容器均可以形成项目文件的共享关系,使得所有容器均可项目访问各自的项目文件,以此形成共享存储卷,达到可以访问该网络服务下的所有业务项目的项目文件的效果,以此克服了现有技术中容器为相互隔离,且不能进行信息和文件共享的缺陷。
其中,Node是kubernetes集群的工作负载节点。
S240、根据用户的项目请求,所述主容器启动所述负载均衡服务器访问所述共享存储卷,获取所述项目文件。
通过步骤S230,所有业务项目,包括原来的和增设的业务项目的项目文件均存储在共享存储卷中。而针对增设的业务项目的初始化容器也因将对应项目文件复制到文件目录中,完成了对初始化任务的执行,对应的初始化容器被删除,当所有的初始化任务执行完毕后,主容器启动。
当服务器接收到用户对增设的业务项目的项目请求时,可根据对该业务项目的识别结果,通过所述主容器启动其内部设置的负载均衡服务器对该共享存储卷,获取对应的项目文件,并跳转至对应的项目代码,对该项目请求进行执行。
本申请所提供的多项目负载均衡的方法,所增设的业务项目所建立的对应的初始化容器均不单独设立负载均衡服务器,克服了因过多的负载均衡服务器进程而造成资源的浪费。同时,将增设的业务项目的项目文件通过对应的初始化容器复制到文件目录,并与主容器下所挂载到文件目录下的所有项目文件构成共享存储卷,克服了容器间相互隔离的技术缺陷,为本申请的技术方案仅在主容器设置负载均衡服务器的实现建立的基础。
参照图4,图4为本申请中对应步骤S220的具体详细实施的步骤流程图。
对于步骤S220,中的所述利用k8s集群,根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器的步骤,包括:
S221、利用k8s集群所提供的接口,接收所述业务项目的基础信息;其中,所述基础信息包括所述业务项目对应的代码地址和基础镜像;
S222、根据所述初始化容器的功能的设定,根据所述功能的代码添加构建新镜像;其中,所述新镜像被推送至指定的仓库;
S223、根据所述基础镜像和新镜像,在所述网络服务对应的pod上建立对应的初始化容器。
在上述步骤S221-S223中,开发人员在控制前端,利用k8s集群所提供的接口,接收增设的业务项目的基础信息,该基础信息包括该业务项目对应的项目代码所存放的代码地址和基础镜像。
该基础镜像为该业务项目对应的操作系统文件和系统文件对象,其规范了对应的基础功能的属性。当初始化容器获取到对应的业务项目时,得到该业务项目的功能设定,根据所述功能的代码,提取除了基础功能以外的新增的功能,并添加构建新镜像。同时,将该新镜像推送至指定的仓库中。根据上述的基础镜像和新镜像,针对该业务项目,对应该网络服务对应pod上建立对应的初始化容器。然后利用该初始化容器获取该业务项目的项目文件并复制到共享存储卷中。
在上述基础上,对于步骤S230中的所述将所述初始化容器的项目文件复制到向所述pod分配的文件目录的步骤,包括:
根据所述初始化容器的项目文件的复制功能,利用复制文件功能的代码,为所述初始化容器添加构建复制镜像,并将所述复制镜像的操作系统文件对象设为所述pod分配的文件目录。
该步骤是针对上述提到的新镜像的新增构建。对于容器将项目文件复制到文件目录上,并非基础镜像。为了使增设的业务项目对应的初始化容器具有文件复制功能,根据该业务项目的代码中得到对应的复制功能的功能代码,以为该初始化容器添加构建具有复制功能的新镜像,在本实施例中,设定其为复制镜像。同时将该复制镜像的操作系统文件对象设为该网络服务对应的pod分配的文件目录。
根据该技术手段,向容器赋予新的功能镜像,使其具备新的功能属性。
以上所陈述的内容是在已创建的网络服务项目的基础上,增设业务项目的实施方式。
对于一项网络服务第一次创建时,在以上步骤S210-S240所实施的技术方案的基础,对应的多项目负载均衡,可参考图5,图5是本申请中的另一个实施例的多项目负载均衡方法的流程图。
在步骤S210之前,还包括以下步骤:
S201、获取网络服务的创建请求,提取所述网络服务的业务项目;
S202、利用k8s集群生成对应的pod,在所述pod上针对不同的业务项目建立对应的初始化容器和针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器;
S203、当所述pod分配到k8s集群的工作负载节点时,向所述pod分配一个文件目录,并将各初始化容器的项目文件复制到所述文件目录,同时所述主容器将所有项目文件挂载至所述文件目录下,形成共享存储卷。
在本申请中,实施网络服务是开发人员为网络服务所设定的通过网络向特定或不特定用户提供的服务项目,具体可以为某个网络游戏或者是网上商城。而业务项目为该网络服务下的完成以实现某业务功能的项目,若网络游戏的资源获取,或者是网上商城的促销项目。
对于步骤S201-S203,当开发人员通过控制前端向服务器发送对应网络服务的创建请求时,服务器获取到创建请求,并提取所述网络服务所有的业务项目。利用k8s集群生成对应的pod,获取每个业务项目对应的项目文件。并针对单个业务项目,对应建立初始化容器,并获取该业务项目的项目文件。而针对该网络服务的所有业务项目,设立一个主容器,该主容器可获取该网络服务的所有业务项目的项目文件,并且为该主容器配置一个负载均衡服务器。
其中,K8s,全称kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。
对于步骤S202中的所述针对所述主容器配置一个负载均衡服务器的步骤,包括:
根据所述主容器的项目文件的负载均衡功能,利用负载均衡功能的代码,为所述主容器添加构建负载均衡镜像。
具体为,该步骤是针对上述提到的新镜像的新增构建。为了使主容器具备负载均衡的功能,根据该业务项目的代码中得到对应的负载均衡功能的功能代码,以为该主容器添加构建具有负载均衡功能的新镜像,在本实施例中,设定其为负载均衡镜像。同时将该负载均衡镜像的操作系统文件对象设为该网络服务对应的pod分配的文件目录。
当所述pod分配到k8s集群的工作负载节点时,如Node,服务器向所述pod分配一个文件目录,这时,该文件目录为空。
各初始化容器按照设定,按顺序执行初始化,即将对应的业务项目的项目文件复制到所述文件目录。同时,所述主容器将所有项目文件挂载至所述文件目录下。这时,由初始化容器复制到文件目录的项目文件和主容器挂载至该文件目录下的项目文件,构成一个新的文件目录。
由于所有容器,包括增设的初始化容器和主容器把各自的项目文件复制或挂载至该文件目录下,使得原来相互隔离的容器均可以形成项目文件的共享关系,使得所有容器均可项目访问各自的项目文件,以此形成共享存储卷。从而克服了现有技术中容器为相互隔离,且不能进行信息和文件共享的缺陷,达到可以访问该网络服务下的所有业务项目的项目文件的效果。
而该共享存储卷是将通过脚本将各初始化容器和所述主容器的所有项目文件复制或挂载至文件目录下,并形成的。
在上述步骤S240的所述主容器启动所述负载均衡服务器访问所述共享存储卷的步骤之前还包括:
当初始化容器将对应业务项目的项目文件复制到共享存储卷时,即该初始化容器的对该业务项目的初始化任务结束。服务器将该初始化容器进行删除。当所有初始化容器完成初始化任务后,所述主容器启动所述负载均衡服务器访问所述共享存储卷。这样,可以进一步节省主机的资源。
对于步骤S201中的所述网络服务的业务项目的步骤,包括以下步骤:
根据所述网络服务的创建请求,分配IP地址创建对应的网络服务;
根据项目文件的标签,提取所述网络服务的业务项目。
当服务器通过控制前端获取网络服务的创建请求,会向该网络服务的分配一个IP地址用于创建该网络服务。但是,该IP地址可有别于后续用户访问该网络服务的IP地址。
当获取网络服务的多个业务项目时,会根据业务项目的命名和/或标签,对所有项目文件中识别其各自对应的业务项目,以便得到对应的业务项目,建立对应的初始化容器。
在此基础上,对于步骤S202,可进一步包括:
根据IP地址,选择对应的k8s集群;
拉取每个业务项目的镜像的最新版本,在所述pod上针对不同的业务项目建立对应的初始化容器和针对所述网络服务建立一个主容器。
根据服务器给该网络服务分配的用于创建该网络服务IP地址,选择确定对应的k8s集群。在为各个业务项目建立对应的初始化容器和主容器时,从仓库的存储器中拉取每个业务项目的镜像的最新版本,以保证后续所使用的项目文件和基础信息是最新形成的。
参照图6,图6为本申请中对应步骤S240的具体详细实施的步骤流程图。
对于本申请的步骤S240,可进一步包括:
S241、根据用户对应的项目请求,启动主容器,利用所述负载均衡服务器监听并拦截到用户的项目请求;
S242、依据所述项目请求,利用项目分区在所述共享存储卷中获取对应的项目文件,并根据所述项目文件跳转至所述代码文件,执行对应的代码文件。
对于步骤S241-S242,当用户通过用户端向服务器发送项目请求,如用户通过网上商城上的双11的促销活动的飘窗。服务器启动主容器,且利用所述负载均衡服务器监听并拦截到用户的项目请求。当接收到项目请求后,获取业务项目的项目请求,并根据该业务项目的标签,在主容器上启动负载均衡服务进程,如nginx进程。根据业务项目的location分区(地址分区),访问共享存储卷上对应的项目文件。并根据所述项目文件跳转至对应的代码文件,然后根据对应的代码文件执行。
在本实施例中,对于步骤S241中的所述根据用户的项目请求的步骤之后,还包括:
根据所述负载均衡服务器的访问域名,向所述负载均衡服务器转发项目请求。
根据该网络服务,获取其主容器的负载均衡服务器的访问域名,并根据该所述负载均衡服务器,转发用户的项目请求。
基于与上述多项目负载均衡方法相同的申请构思,本申请实施例还提供了一种多项目负载均衡装置,参考图7,图7是本申请中的一个实施例的多项目负载均衡装置的结构示意图,所述多项目负载均衡装置包括:
获取模块710,用于获取网络服务的业务项目的请求,提取对应的项目文件;
容器增设模块720,用于根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器;其中,所述pod针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器;
共享模块730,用于将所述初始化容器的项目文件复制到向所述pod分配的文件目录,与所述主容器挂载在该文件目录下的项目文件重新组成共享存储卷,使得所有容器可访问所有项目文件;
执行模块740,用于根据用户的项目请求,所述主容器启动所述负载均衡服务器访问所述共享存储卷,获取所述项目文件。
请参考图8,图8为本申请中的一个实施例的服务器的结构示意图。如图8所示,该服务器包括通过系统总线连接的处理器810、存储介质820、存储器830和网络接口840。其中,该服务器的存储介质820存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器810执行时,可使得处理器810实现多项目负载均衡方法,处理器810能实现图7所示实施例中的一种多项目负载均衡装置中的获取模块710、容器增设模块720、共享模块730和执行模块740的功能。该服务器的处理器810用于提供计算和控制能力,支撑整个服务器的运行。该服务器的存储器830中可存储有计算机可读指令,该计算机可读指令被处理器810执行时,可使得处理器810执行多项目负载均衡方法。该服务器的网络接口840用于与终端连接通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行多项目负载均衡方法的步骤:获取网络服务的业务项目的请求,提取对应的项目文件;根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器;其中,所述pod针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器;将所述初始化容器的项目文件复制到向所述pod分配的文件目录,与所述主容器挂载在该文件目录下的项目文件重新组成共享存储卷,使得所有容器可访问所有项目文件;根据用户的项目请求,所述主容器启动所述负载均衡服务器访问所述共享存储卷,获取所述项目文件。
综合上述实施例可知,本申请的有益效果在于:
本申请所提供的多项目负载均衡方法和装置,将各个业务项目建立对应初始化容器,并将其项目文件复制到该网络服务对应的文件目录中,并与主容器挂载在其上的项目文件,构成共享存储卷,实现容器间项目文件的共享,从而克服容器间相互隔离的技术缺陷。在此基础上,本申请仅在主容器上设立对应的负载均衡服务器,可根据用户的项目请求,启动负载均衡服务器执行对应的业务项目。避免了如现有技术中,需要对每个业务项目建立容器并单独配置负载均衡服务器,而造成资源的浪费情况,以此节省了对资源消耗。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (14)
1.一种多项目负载均衡方法,其特征在于,包括以下步骤:
获取网络服务的业务项目的请求,提取对应的项目文件;
根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器;其中,所述pod针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器;
将所述初始化容器的项目文件复制到向所述pod分配的文件目录,与所述主容器挂载在该文件目录下的项目文件重新组成共享存储卷,使得所有容器可访问所有项目文件;
根据用户的项目请求,所述主容器启动所述负载均衡服务器访问所述共享存储卷,获取所述项目文件。
2.根据权利要求1所述的方法,其特征在于,
根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器的步骤,包括:
利用k8s集群所提供的接口,接收所述业务项目的基础信息;其中,所述基础信息包括所述业务项目对应的代码地址和基础镜像;
根据所述初始化容器的功能的设定,根据所述功能的代码添加构建新镜像;其中,所述新镜像被推送至指定的仓库;
根据所述基础镜像和新镜像,在所述网络服务对应的pod上建立对应的初始化容器。
3.根据权利要求2所述的方法,其特征在于,
所述将所述初始化容器的项目文件复制到向所述pod分配的文件目录的步骤,包括:
根据所述初始化容器的项目文件的复制功能,利用复制文件功能的代码,为所述初始化容器添加构建复制镜像,并将所述复制镜像的操作系统文件对象设为所述pod分配的文件目录。
4.根据权利要求2所述的方法,其特征在于,
所述获取所述网络服务的业务项目的请求的步骤之前,还包括:
获取网络服务的创建请求,提取所述网络服务的业务项目;
利用k8s集群生成对应的pod,在所述pod上针对不同的业务项目建立对应的初始化容器和针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器;
当所述pod分配到k8s集群的工作负载节点时,向所述pod分配一个文件目录,并将各初始化容器的项目文件复制到所述文件目录,同时所述主容器将所有项目文件挂载至所述文件目录下,形成共享存储卷。
5.根据权利要求4所述的方法,其特征在于,
所述提取所述网络服务的业务项目的步骤,包括:
根据所述网络服务的创建请求,分配IP地址创建对应的网络服务;
根据项目文件的标签,提取所述网络服务的业务项目。
6.根据权利要求5所述的方法,其特征在于,
所述利用k8s集群生成对应的pod,在所述pod上针对不同的业务项目建立对应的初始化容器和针对所述网络服务建立一个主容器的步骤,包括:
根据IP地址,选择对应的k8s集群;
拉取每个业务项目的镜像的最新版本,在所述pod上针对不同的业务项目建立对应的初始化容器和针对所述网络服务建立一个主容器。
7.根据权利要求4所述的方法,其特征在于,
所述形成共享存储卷的步骤,包括:
通过脚本将各初始化容器和所述主容器的所有项目文件复制到所述共享存储卷。
8.根据权利要求4所述的方法,其特征在于,
所述主容器启动所述负载均衡服务器访问所述共享存储卷的步骤之前,还包括:
对所有初始化容器的项目文件完成复制。
9.根据权利要求1所述的方法,其特征在于,
所述根据用户的项目请求,所述主容器启动所述负载均衡服务器访问所述共享存储卷,获取对应项目文件的步骤,包括:
根据用户对应的项目请求,启动主容器,利用所述负载均衡服务器监听并拦截到用户的项目请求;
依据所述项目请求,利用项目分区在所述共享存储卷中获取对应的项目文件,并根据所述项目文件跳转至代码文件,执行对应的代码文件。
10.根据权利要求7所述的方法,其特征在于,
所述根据用户的项目请求的步骤之后,包括:
根据所述负载均衡服务器的访问域名,向所述负载均衡服务器转发项目请求。
11.根据权利要求4所述的方法,其特征在于,
所述针对所述主容器配置一个负载均衡服务器的步骤,包括:
根据所述主容器的项目文件的负载均衡功能,利用负载均衡功能的代码,为所述主容器添加构建负载均衡镜像。
12.一种多项目负载均衡装置,其特征在于,包括:
获取模块,用于获取网络服务的业务项目的请求,提取对应的项目文件;
容器增设模块,用于根据所述业务项目,在所述网络服务对应的pod上建立对应的初始化容器;其中,所述pod针对所述网络服务建立一个主容器,并针对所述主容器配置一个负载均衡服务器;
共享模块,用于将所述初始化容器的项目文件复制到向所述pod分配的文件目录,与所述主容器挂载在该文件目录下的项目文件重新组成共享存储卷,使得所有容器可访问所有项目文件;
执行模块,用于根据用户的项目请求,所述主容器启动所述负载均衡服务器访问所述共享存储卷,获取所述项目文件。
13.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行权利要求1至11任一项所述的多项目负载均衡方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至11任一项所述的多项目负载均衡方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910969947.6A CN110727653B (zh) | 2019-10-12 | 2019-10-12 | 多项目负载均衡方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910969947.6A CN110727653B (zh) | 2019-10-12 | 2019-10-12 | 多项目负载均衡方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110727653A true CN110727653A (zh) | 2020-01-24 |
CN110727653B CN110727653B (zh) | 2023-06-16 |
Family
ID=69220020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910969947.6A Active CN110727653B (zh) | 2019-10-12 | 2019-10-12 | 多项目负载均衡方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110727653B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459619A (zh) * | 2020-04-07 | 2020-07-28 | 合肥本源量子计算科技有限责任公司 | 一种基于云平台实现服务的方法和装置 |
CN111796859A (zh) * | 2020-06-22 | 2020-10-20 | 上海众言网络科技有限公司 | 一种基于Nginx的项目动态发布方法及装置 |
CN112148264A (zh) * | 2020-09-29 | 2020-12-29 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种跨框架数据交互方法及装置 |
CN112181900A (zh) * | 2020-09-04 | 2021-01-05 | 中国银联股份有限公司 | 一种服务器集群中的数据处理方法与装置 |
CN112947965A (zh) * | 2021-03-01 | 2021-06-11 | 北京百度网讯科技有限公司 | 容器化的服务更新方法和装置 |
CN113448609A (zh) * | 2021-08-30 | 2021-09-28 | 恒生电子股份有限公司 | 一种容器的升级方法、装置、设备和存储介质 |
CN113556375A (zh) * | 2020-04-26 | 2021-10-26 | 阿里巴巴集团控股有限公司 | 云计算服务方法、装置、电子设备和计算机存储介质 |
CN113783922A (zh) * | 2021-03-26 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 负载均衡的方法、系统和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790692A (zh) * | 2017-02-20 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种多集群的负载均衡方法和装置 |
CN107646103A (zh) * | 2015-05-17 | 2018-01-30 | Nicira股份有限公司 | 对容器的逻辑处理 |
US20180365238A1 (en) * | 2017-06-20 | 2018-12-20 | Red Hat, Inc. | Sharing Filesystems Between Containers |
US10212041B1 (en) * | 2016-03-04 | 2019-02-19 | Avi Networks | Traffic pattern detection and presentation in container-based cloud computing architecture |
CN109960585A (zh) * | 2019-02-02 | 2019-07-02 | 浙江工业大学 | 一种基于kubernetes的资源调度方法 |
-
2019
- 2019-10-12 CN CN201910969947.6A patent/CN110727653B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107646103A (zh) * | 2015-05-17 | 2018-01-30 | Nicira股份有限公司 | 对容器的逻辑处理 |
US10212041B1 (en) * | 2016-03-04 | 2019-02-19 | Avi Networks | Traffic pattern detection and presentation in container-based cloud computing architecture |
CN106790692A (zh) * | 2017-02-20 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种多集群的负载均衡方法和装置 |
US20180365238A1 (en) * | 2017-06-20 | 2018-12-20 | Red Hat, Inc. | Sharing Filesystems Between Containers |
CN109960585A (zh) * | 2019-02-02 | 2019-07-02 | 浙江工业大学 | 一种基于kubernetes的资源调度方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459619A (zh) * | 2020-04-07 | 2020-07-28 | 合肥本源量子计算科技有限责任公司 | 一种基于云平台实现服务的方法和装置 |
CN113556375A (zh) * | 2020-04-26 | 2021-10-26 | 阿里巴巴集团控股有限公司 | 云计算服务方法、装置、电子设备和计算机存储介质 |
CN111796859A (zh) * | 2020-06-22 | 2020-10-20 | 上海众言网络科技有限公司 | 一种基于Nginx的项目动态发布方法及装置 |
CN112181900A (zh) * | 2020-09-04 | 2021-01-05 | 中国银联股份有限公司 | 一种服务器集群中的数据处理方法与装置 |
CN112181900B (zh) * | 2020-09-04 | 2024-05-14 | 中国银联股份有限公司 | 一种服务器集群中的数据处理方法与装置 |
CN112148264A (zh) * | 2020-09-29 | 2020-12-29 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种跨框架数据交互方法及装置 |
CN112947965A (zh) * | 2021-03-01 | 2021-06-11 | 北京百度网讯科技有限公司 | 容器化的服务更新方法和装置 |
CN112947965B (zh) * | 2021-03-01 | 2023-10-13 | 北京百度网讯科技有限公司 | 容器化的服务更新方法和装置 |
CN113783922A (zh) * | 2021-03-26 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 负载均衡的方法、系统和装置 |
CN113448609A (zh) * | 2021-08-30 | 2021-09-28 | 恒生电子股份有限公司 | 一种容器的升级方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110727653B (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727653B (zh) | 多项目负载均衡方法和装置 | |
US11405274B2 (en) | Managing virtual network functions | |
US11683220B2 (en) | In-memory workflow management in edge devices | |
US20110078681A1 (en) | Method and system for running virtual machine image | |
US8495352B2 (en) | System and method for instantiation of distributed applications from disk snapshots | |
CN106302771A (zh) | 一种基于Docker容器创建的应用的域名配置方法 | |
CN105740048A (zh) | 一种镜像管理方法、装置及系统 | |
US11809901B2 (en) | Migrating the runtime state of a container between two nodes | |
US20130283267A1 (en) | Virtual machine construction | |
CN102333029A (zh) | 一种服务器集群系统中的路由方法 | |
CN108052328A (zh) | 一种安卓系统的构建方法及其应用 | |
CN108073423A (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
CN113031993A (zh) | 基于集群容器的应用升级方法及装置 | |
CN111124430A (zh) | 一种混合架构的微服务部署方法和装置 | |
CN110008004B (zh) | 一种电力系统计算分析应用虚拟化方法、装置和设备 | |
CN110781441A (zh) | 基于微服务化架构的新零售业务中台 | |
CN108062239A (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
US8930967B2 (en) | Shared versioned workload partitions | |
CN111459619A (zh) | 一种基于云平台实现服务的方法和装置 | |
CN110782040A (zh) | 一种pytorch任务训练方法、装置、设备及介质 | |
US8583774B2 (en) | Mapping meaningful hostnames | |
CN113127430B (zh) | 镜像信息处理方法、装置、计算机可读介质及电子设备 | |
CN113342457A (zh) | 基于Eureka服务注册与发现的Kubernetes调度方法 | |
Kropp et al. | Docker: containerize your application | |
US20240143318A1 (en) | Efficient configuration management in continuous deployment |
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 | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20200124 Assignee: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd. Assignor: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd. Contract record no.: X2021440000030 Denomination of invention: Multi item load balancing method and device License type: Common License Record date: 20210125 |
|
GR01 | Patent grant | ||
GR01 | Patent grant |