WO2022267646A1 - 一种容器集的部署方法及装置 - Google Patents

一种容器集的部署方法及装置 Download PDF

Info

Publication number
WO2022267646A1
WO2022267646A1 PCT/CN2022/087397 CN2022087397W WO2022267646A1 WO 2022267646 A1 WO2022267646 A1 WO 2022267646A1 CN 2022087397 W CN2022087397 W CN 2022087397W WO 2022267646 A1 WO2022267646 A1 WO 2022267646A1
Authority
WO
WIPO (PCT)
Prior art keywords
container set
container
application
scheduler
time period
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.)
Ceased
Application number
PCT/CN2022/087397
Other languages
English (en)
French (fr)
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
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 Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to EP22827148.2A priority Critical patent/EP4345614A4/en
Publication of WO2022267646A1 publication Critical patent/WO2022267646A1/zh
Priority to US18/545,838 priority patent/US20240118935A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Definitions

  • the present application relates to the technical field of resource scheduling, and in particular to a container set deployment method and device.
  • Multi-cloud interconnection or edge sites can have their own application management clusters, which can be used to achieve unified management within resources.
  • the application management cluster may include an upper system and a lower system, and the upper system may be used to coordinate with the controller in the lower system to provide global resource scheduling management.
  • Existing application management clusters such as Kubernetes clusters, include application programming interface (application programming interface, API) servers, controllers, and multiple working nodes.
  • API application programming interface
  • the pod creation request can include the resource requirements for creating the pod, such as central processing Central processing unit (CPU) number requirements, storage resource requirements, etc.
  • CPU central processing Central processing unit
  • the controller can create a container set according to the container set creation request, and schedule the created container set to the worker node that meets the resource requirements, so as to complete the deployment of the container set.
  • a preset number of container sets is usually deployed. If the number of currently deployed container sets cannot meet the needs of a large number of users to access applications, the application management cluster can further increase the number of deployed container sets. quantity. However, it takes a certain amount of time to deploy a container set. As a result, some users fail to access the application during the deployment of the container set.
  • the present application provides a container set deployment method and device, which are used to increase the flexibility of container deployment to meet user access requirements.
  • the present application provides a container set deployment method, the method includes: a scheduler (scheduler) obtains demand information and container set annotations from the application management cluster, and the demand information includes the time period and the number of users corresponding to the time period , the container set annotation is used to indicate the number of users supported by a single container set; the scheduler determines the number M of container sets that need to be deployed in the time period according to the number of users corresponding to the time period and the number of users supported by a single container set, and determines the number of users The target node for deploying M container sets; the scheduler generates a deployment plan according to the number M of container sets to be deployed in the time period and the target nodes for deploying M container sets; where M is greater than or equal to 1 integer.
  • the demand information and container set annotations are obtained from the application management cluster, and the containers to be deployed in the time period are determined according to the number of users corresponding to the time period in the demand information and the number of users supported by a single container set in the container set annotations
  • the number of container sets can be determined in advance, so that the number of container sets that should be deployed in different time periods can be determined in advance, which helps to better implement the deployment planning of container sets, and avoids that the number of currently deployed container sets cannot meet the needs of users to access applications. A problem that caused user access to fail.
  • the requirement information also includes address requirements and operator requirements
  • the scheduler determines the target node for deploying M container sets, including: the scheduler obtains the work through the API server in the application management cluster The node label of the node, the node label includes the address and the operator of the working node; the scheduler determines that the address and the operator meet the address requirements and operator requirements included in the demand information, as a working node for deploying M containers The target node of the set.
  • the scheduler determines from the working nodes the target node whose address in the node label meets the address requirement and whose operator in the node label meets the operator's requirement according to the address requirements and operator requirements.
  • container sets can be deployed in target nodes that meet the demand information.
  • users can use corresponding operators to access applications deployed in container sets in target nodes within a corresponding geographical range, avoiding cross-regional and/or Cross-operator access to applications helps reduce user access delays.
  • the scheduler sends a virtual machine creation request to the cloud system, the virtual machine creation request is used to instruct the cloud system to create a virtual machine, and correspondingly, the cloud system creates a corresponding virtual machine based on the virtual machine creation request.
  • the virtual machine can send a node registration request to the API server, and the node registration request includes the address and operator of the virtual machine.
  • the API server can store the address and operator of the virtual machine in the database.
  • the scheduler can obtain the address and operator of the virtual machine from the database through the API server, and generate a node label of the virtual machine according to the address and operator of the virtual machine, and determine the virtual machine as a working node.
  • the scheduler can instruct the cloud system to create virtual machines according to requirements, so that there can be enough working nodes (physical machines or virtual machines) for deploying container sets.
  • the requirement information also includes the application identifier
  • the container set annotation also includes the application identifier running on the application in the container set
  • the scheduler obtains the requirement information and the container set annotation from the application management cluster, including: For the same application, the scheduler obtains the demand information and container set annotation corresponding to the application ID of the same application through the API server in the application management cluster.
  • the scheduler can also instruct the application management cluster to target nodes corresponding to each container set in the M container sets before the start of the time period according to the deployment plan and/or, according to the deployment plan, the scheduler instructs the application management cluster to delete the container set on the target node corresponding to each container set in the M container sets after the end of the time period.
  • the present application provides a device for deploying a container set, which includes: an acquisition module, configured to obtain demand information and container set annotations from the application management cluster, and the demand information includes a time period and the number of users corresponding to the time period , the container set annotation is used to indicate the number of users supported by a single container set; the processing module is used to determine the number M of container sets that need to be deployed in the time period according to the number of users corresponding to the time period and the number of users supported by a single container set, And determine the target node for deploying M container sets; generate a deployment plan according to the number M of container sets that need to be deployed in the time period, and the target nodes for deploying M container sets; where M is greater than or equal to 1 an integer of .
  • the requirement information also includes address requirements and operator requirements.
  • the processing module determines the target node for deploying M container sets, it is specifically used to: obtain The node label of the working node, the node label includes the address and operator of the working node; determine that the address and operator meet the address requirements and operator requirements included in the requirement information, as a working node for deploying M container sets target node.
  • the processing module is further configured to: send a virtual machine creation request to the cloud system, and the virtual machine creation request is used to instruct the cloud system to create a virtual machine; obtain the ownership of the virtual machine through the API server in the application management cluster The address and the operator of the virtual machine generate a node label of the virtual machine according to the address of the virtual machine and the operator of the virtual machine, and determine that the virtual machine is a working node.
  • the requirement information also includes the application identifier
  • the container set annotation also includes the application identifier running on the application in the container set; when the acquisition module obtains the requirement information and the container set annotation from the application management cluster, the specific use Yu: For the same application, obtain the requirement information and container set annotation corresponding to the application ID of the same application through the API server in the application management cluster.
  • the processing module after the processing module generates the deployment plan, it is also used to: according to the deployment plan, before the start of the time period, instruct the application management cluster to target nodes corresponding to each container set in the M container sets and/or, according to the deployment plan, after the end of the time period, instruct the application management cluster to delete the container set on the target node corresponding to each container set in the M container sets.
  • the present application provides a computer-readable storage medium, where computer programs or instructions are stored in the computer-readable storage medium, and when the computer programs or instructions are executed by a computing device, the above-mentioned first aspect or the first aspect can be realized. Either method in one aspect.
  • the present application provides a computing device, including a processor, the processor is connected to a memory, the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, so that The computing device executes the first aspect or any one method in the first aspect.
  • the present application provides a computer program product, including a computer program or an instruction.
  • a computer program product including a computer program or an instruction.
  • the computer program or instruction is executed by a computing device, the above first aspect or any method in the first aspect is implemented.
  • FIG. 1 is a system architecture diagram applicable to a container set deployment method provided by the present application
  • FIG. 2 is a schematic flow diagram of a deployment container set provided by the present application.
  • FIG. 3 is a schematic diagram of a newly defined container set description provided by the present application.
  • FIG. 4 is a schematic flow diagram of another deployment container set provided by the present application.
  • FIG. 5 is a flow chart of creating a virtual machine provided by the present application.
  • FIG. 6 is a structural diagram of a device for deploying container sets provided by the present application.
  • FIG. 7 is a structural diagram of another device for deploying a container set provided by the present application.
  • FIG. 1 is a system architecture diagram for an exemplary container set deployment method provided in this application.
  • the system includes a client, an application management cluster, a scheduler and working nodes.
  • the application management cluster can be used for automatic deployment, expansion, and operation and maintenance of container clusters.
  • the application management cluster may include an API server and a controller.
  • the API server can be used by the client to send a container set creation request to the application management cluster.
  • the controller can obtain the container set creation request from the API server, create a preset number of container sets according to the container set creation request, and schedule the preset number of container sets to run on the corresponding worker nodes.
  • the application management cluster may be a Kubernetes cluster.
  • the scheduler includes an application scheduler (APP scheduler).
  • the application scheduler can schedule instructions according to application requirements, and schedule application requirements, such as adding application requirements, modifying application requirements, deleting application requirements, and querying application requirements.
  • the API server may also be connected to the application scheduler, and the application scheduler may obtain the application demand scheduling instruction issued by the client through the API server.
  • the scheduler may also include a resource scheduler (resource scheduler), which can interact with external resources to provide the application with virtual machine resources or container resources required for its operation.
  • the external resource may be a cloud system, such as one or more of a public cloud system, an edge cloud system, and a hybrid cloud system.
  • Work nodes can be physical machines or virtual machines (virtual machine, VM), work nodes can be deployed in different geographical locations, and work nodes can also use different operator networks. There can be multiple working nodes, and the number of working nodes can change under the scheduling of the resource scheduler. Specifically, the resource scheduler may instruct the cloud system to create or delete working nodes, so as to control changes in the number of working nodes.
  • VM virtual machine
  • API server can be used as an external interface of the application management cluster, and clients, application schedulers, resource schedulers, cloud systems, or other devices can access the application management cluster through the API server.
  • FIG. 1 With reference to the system architecture diagram exemplarily shown in FIG. 1 , the process of creating a container set by the application management cluster in this application is firstly explained. Referring to FIG. 2 , a schematic flow chart of deploying a container set is exemplarily shown.
  • the client sends a container set creation (create pod) request to the API server.
  • the API server receives a container set creation request from the client.
  • the container set creation request may include resource requirements for creating the container set, such as CPU number requirements, storage resource requirements, and the like.
  • Step 202 the API server generates a container set description according to the container set creation request.
  • Step 203 the API server stores the container set description in the database.
  • step 204 the controller detects that there is a new container set description in the database through the API server, and determines a working node (ie, a target node) that can be used to run the container set according to the container set description.
  • a working node ie, a target node
  • Step 205 the controller updates the allocation record to the database, wherein the allocation record includes the target node identifier.
  • the working node monitors the allocation record of the database through the API server, and if it determines that the identity of its own node is recorded in the allocation record, it can create a container set and start the containers in the container set.
  • the application management cluster can first create a preset number of container sets, monitor the usage of the container set, and determine the current container set according to the usage of the container set Whether the number of container sets can meet the needs of users to access applications, and then determine whether to change the number of container sets.
  • the application management cluster may detect that the usage load of the container sets is greater than the load threshold, and accordingly, the application management cluster may deploy a preset number of container sets again. However, it takes a certain amount of time to deploy a container set. As a result, some users fail to access the application during the deployment of the container set.
  • the present application provides a container set deployment method, which can determine the number of container sets corresponding to user requirements in advance.
  • the application management cluster can deploy this number of container sets at one time, so as to avoid the problem that the number of container sets cannot meet the needs of users to access applications, which will cause some users to fail to access applications.
  • the interface provided by the API server can be used to define functions (or methods or APIs) for scheduling application requirements in the system in advance, so that developers can issue applications at the client.
  • Demand scheduling instructions can include one or more of adding application demand, modifying application demand, deleting application demand, and querying application demand. The implementation of defining functions is described below by taking adding application demand as an example.
  • the developer can call this function at the client and input the corresponding parameters. It can also be understood that the developer can issue a scheduling instruction (which can be called the first scheduling instruction) to the API server through the client to increase the application demand.
  • the first scheduling instruction includes demand information corresponding to creating an application.
  • the demand information may include the application identifier, time period and user volume corresponding to the application to be scheduled, so as to indicate the number of users (or visits) that need to use the application in the corresponding time period .
  • the application to be scheduled is a real-time communication (RTC) service
  • the demand information can be expressed as: "Application ID: RTC, time period: 10:00-11:00, number of users: 3W", the demand information is available This is because it is estimated that 3W users need to use the RTC service during the time period from 10:00 to 11:00.
  • the demand information may also include address demand and/or operator demand, so as to indicate the number of users who need to use the application in a corresponding time period, a corresponding address, and a corresponding operator.
  • the application to be scheduled is an RTC service
  • the demand information can be expressed as: "Application ID: RTC, time period: 10:00-11:00, number of users: 3W, address requirement: Shanghai, operator requirement: operator a", Then the demand information can be used to represent that in the time period from 10:00 to 11:00, it is estimated that 3W users will use the RTC service through the operator a in Shanghai.
  • the developer may issue multiple first scheduling instructions to the API server through the client, and each first scheduling instruction includes its own demand information.
  • the API server may receive multiple first scheduling instructions from the client, and store the demand information in the multiple first scheduling commands in the database, and the demand information in the multiple first scheduling commands can be accessed through the API
  • the server is fetched.
  • the present application can also newly define a container set description, which includes container set annotations, which can be used to indicate the maximum number of users that a single container set can support when running an application.
  • the container set annotation may include the identifier of the running application in the container set and the maximum number of users supported by a single container set.
  • the newly defined container set description can also be stored in the database, and the container set description can be obtained through the API server.
  • FIG. 3 is a newly defined container set description provided by this application. The container set corresponding to the container set description is used to run the RTC service.
  • the container set annotation in the container set description can be referred to in bold in FIG.
  • the container set annotation includes "appDescription (app description)", and “appDescription” includes “name:RTC; value:3000”, the container set annotation indicates that the application identifier is RTC, and the maximum number of users that a single container set can support is 3000.
  • the description of the container set may also include the resource requirements required for deploying the container set, see "cpu:100m" in Figure 3.
  • the basic unit of CPU resources is millicores (that is, 1/100m of a core 1000)
  • the container set description indicates that the deployment container set requires 100m (that is, 100 millicores)
  • the application management cluster can provide container sets for multiple applications.
  • the container set description and requirement information corresponding to each application can be defined.
  • demand information 1 and container set description 1 can be defined, where demand information 1 indicates the number of users using application 1 in time period 1; container set annotation 1 in container set description 1 indicates that a single container set is running The number of users that can be supported when applying 1.
  • demand information 2 and container set description 2 can be defined, where demand information 2 indicates the number of users using application 2 in time period 2; container set annotation 2 in container set description 2 indicates that a single container set is running application 2 The number of users that can be supported.
  • the scheduler When the scheduler generates a deployment plan, it can generate a deployment plan corresponding to the application based on the container set description (or container set annotation) and demand information of the same application.
  • the number of container sets to be deployed can be determined according to the container set description and requirement information corresponding to the application, and then the number of container sets can be deployed uniformly.
  • FIG. 4 an exemplary process of deploying a container set provided by the present application is explained. In this process:
  • Step 401 the scheduler obtains demand information and container set comments from the application management cluster.
  • the scheduler can obtain demand information and container set comments from the application management cluster through the API server.
  • the scheduler can target the same application, and according to the application ID of the same application, obtain the demand information and container corresponding to the application ID of the same application through the API server in the application management cluster Set annotation, the application ID in the requirement information is the same as the application ID in the container set annotation.
  • the demand information may be information in the first scheduling instruction obtained by the scheduler through the API server.
  • the scheduler can obtain multiple demand information from the application management cluster.
  • a plurality of demand information such as demand information 1 , demand information 2 and demand information 3 .
  • requirement information 1 is "application identification: RTC, time period: 10:00-11:00, user volume: 3W, address requirement: Shanghai, operator requirement: operator a"
  • requirement information 2 is "application identification: RTC, time period: 11:00-12:00, number of users: 3W, address requirement: Hunan, operator requirement: operator b"
  • requirement information 3 is "Application ID: RTC, time period: 12:00-13 :00, number of users: 4.5W, address requirement: Zhejiang, operator requirement: operator b”.
  • the container set comment obtained by the scheduler from the application management cluster is, for example, "application identifier: RTC; value: 3000".
  • Step 402 the scheduler determines the number M of container sets to be deployed in the corresponding time period according to the number of users corresponding to the time period and the number of users supported by a single container set, and determines the target node for deploying M container sets, M is a positive integer greater than or equal to 1.
  • the scheduler may determine N target nodes that can be used to deploy the container set corresponding to the requirement information from multiple working nodes, where N is a positive integer greater than or equal to 1.
  • the scheduler can determine the remaining resources of each working node, determine whether the remaining resources of the working node can meet the resource requirements of the deployment container set, and if the remaining resources of the working node meet the resource requirements of the deployment container set
  • the worker node can be used as the target node. For example, deploying a resource set requires 3 CPUs, and there are 8 CPUs remaining in worker node 0.
  • the scheduler can determine that a container set can be deployed in worker node 0, and a maximum of 2 container sets can be deployed; while worker node 1 has 2 CPUs remaining , the scheduler can determine that the container set cannot be deployed in worker node 1. In this way, N target nodes for deploying the container set corresponding to the requirement information are obtained.
  • each working node can correspond to its own node label, and the node label can be generated according to the location and/or operator of the working node when deploying the working node, wherein the operator of the working node can understand Yes, the operator that provides network communication services for working nodes.
  • the scheduler can obtain the node label of each working node from the database through the API server.
  • the node label may include the location and/or operator of the working node. Take the location and operator included in the node label as an example. For example, if the working node 0 is deployed in Shanghai, and the operator of the working node is operator a, then the node label 0 of the working node 0 can be "Address: Shanghai, affiliated operator: operator a".
  • the demand information may also include address requirements and operator requirements
  • the scheduler may obtain the node label of each working node among multiple working nodes, and then according to the address requirements and operator requirements included in the demand information, and each The node label of the working node determines N target nodes from multiple working nodes, where the address in the node label of the target node meets the address requirements in the demand information, and the operator in the node label meets the operator in the demand information need.
  • requirement information 1 is "application identifier: RTC, time period: 10:00-11:00, number of users: 3W, address requirement: Shanghai, operator requirement: operator a".
  • the scheduler can obtain the node labels of multiple working nodes.
  • node label 0 of working node 0 is "Address: Shanghai, Operator: operator a”
  • node label 1 of working node 1 is “Address: Shanghai, Operator: operator b”
  • node label 2 of working node 2 is "address: Hunan, operator: operator b”, etc.
  • the scheduler can determine that the node label 0 of the working node 0 meets the address requirements and operator requirements in the requirement information, but the working node 1 or the working node 2 does not meet the address requirements and operator requirements in the requirement information.
  • the scheduler determines from the working nodes that the address in the node label meets the address requirement, and/or the target node whose operator in the node label meets the operator's requirement according to the address requirement and/or the operator requirement. Therefore, the container set can be deployed in the target node that meets the demand information.
  • the user can use the corresponding operator, and/or, access the application deployed in the container set in the target node within the corresponding geographical range, so as to prevent users from crossing regions And/or access applications across operators, which helps reduce user access delays.
  • the scheduler can determine the score of each working node according to the demand information, the remaining resources of each working node, the location of the working node in the node label and/or the operator it belongs to, and based on the score N target nodes are determined from the plurality of working nodes.
  • step 403 the scheduler generates a deployment plan according to the number M of container sets to be deployed in the time period and target nodes for deploying the M container sets.
  • the scheduler may determine the number M of container sets corresponding to the demand information and target nodes for deploying the M container sets according to the demand information, and then generate a deployment plan corresponding to the demand information.
  • the scheduler can generate the deployment plan shown in Table 1 according to the above-mentioned requirement information 1, requirement information 2 and requirement information 3, wherein the requirement information 1 corresponds to the deployment plan 1, and the requirement information 2 corresponds to the deployment plan 2, Requirement information 3 corresponds to deployment plan 3 .
  • the time period included in deployment plan 1 is 10:00-11:00
  • the address/operator is Shanghai/operator a
  • 10 container sets need to be deployed
  • the 10 container sets can be deployed on the target node 11 to the target node 1N.
  • the deployment planning corresponding to other requirement information is similar.
  • Step 404 the scheduler instructs the application management cluster to create and/or delete container sets according to the deployment plan.
  • the scheduler may instruct the application management cluster to deploy and/or delete the container set on the corresponding target node according to the deployment plan.
  • the scheduler may instruct the application management cluster to deploy the container set on the corresponding target node before the start of the time period of the deployment plan.
  • the scheduler can determine the first time according to the starting time and the first preset duration, and instruct the application management cluster to deploy the container set on the corresponding target node at the first moment, wherein the first preset duration can be Greater than or equal to the time required to deploy the pod.
  • the scheduler may also instruct the application management cluster to delete the container set on the corresponding target node after the end of the time period of the deployment plan according to the deployment plan.
  • the scheduler may determine a second time according to the termination time and the second preset duration, and instruct the application management cluster to delete the container set on the corresponding target node at the second time.
  • deployment plan 1 indicates that 10 container sets need to be deployed between 10:00-11:00
  • the scheduler can send the application management
  • the cluster sends a container set creation request, and the container set creation request can be used to instruct the application management cluster to deploy a total of 10 container sets on the target node 11 to the target node 1N.
  • the scheduler can also send a container set deletion request to the application management cluster after 11:00 (such as 11:01), and the container set deletion request can be used to instruct the application management cluster to delete the previously deployed on the target node 11 to the target node 1N 10 container sets.
  • the scheduler may determine to deploy one or more container sets on the target node based on information such as the remaining resources of the target node, the location of the working node in the node label, and/or the operator it belongs to.
  • the scheduler when the scheduler sends a container set creation request to the application management cluster, it may indicate which container set is deployed on which target node by the application management cluster.
  • the scheduler determines that the deployment plan 1 includes 5 target nodes, and the corresponding relationship between the 5 target nodes and the 10 container sets is shown in Table 2.
  • the scheduler may send a container set creation request to the application management cluster before 10:00, and the container set creation request may be used to instruct the application management cluster to deploy container sets 1 and 2 on the target node 11 . Further, the scheduler may also send a container set deletion request to the application management cluster after 11:00, and the container set deletion request may be used to instruct the application management cluster to delete the container set 1 and the container set 2 on the target node 11 .
  • target node container set target node 11 Container Set 1
  • deployment plan 1 indicates that 10 container sets are deployed on the target node corresponding to Shanghai/operator a between 10:00 and 11:00.
  • deployment plan 4 indicating that 15 container sets are deployed on the target node corresponding to Shanghai/operator a from 11:00 to 12:00, so the scheduler may not send containers to the application management cluster after 11:00 Instead, send a container set creation request to the application management cluster before 11:00, and the container set creation request is used to instruct the application management cluster to deploy five container sets on the indicated target node. In this way, frequent creation and deletion of container sets can be avoided, thereby helping to save time delay and resources.
  • the scheduler may not be able to determine the target node from the current working nodes according to the deployment plan, then the scheduler may instruct the deployment of new working nodes, and determine the target node among the newly deployed working nodes.
  • the newly deployed working node may be a physical machine or a virtual machine.
  • the scheduler invokes an interface for creating a virtual machine in the cloud system to instruct the cloud system to create a virtual machine, and the created virtual machine can be used to run the container set that needs to be deployed in the scheduler's deployment plan.
  • FIG. 5 exemplarily shows a flow chart of creating a virtual machine. In this process:
  • step 501 the scheduler sends a virtual machine creation request to the cloud system, and the virtual machine creation request can instruct the cloud system to create a preset number of virtual machines that meet address requirements and operator requirements.
  • step 502 the cloud system responds to the virtual machine creation request and uses the created virtual machine image to create a preset number of virtual machines that meet address requirements and operator requirements.
  • Step 503 the cloud system transmits the address of the API server (such as an Internet Protocol (IP) address) to the virtual machine through parameter injection or script injection.
  • IP Internet Protocol
  • Step 504 after the virtual machine is running, the script may be automatically executed to send a node registration request to the API server, and the node registration request may include the address and operator of the virtual machine. Further, the API server may store the address of the virtual machine and the operator correspondingly in the database.
  • Step 505 the scheduler acquires the location and operator of the virtual machine from the database through the API server.
  • Step 506 the scheduler generates a node label of the virtual machine according to the location and operator of the virtual machine.
  • the scheduler can use the virtual machine as a new working node.
  • the scheduler may send a virtual machine creation request to the cloud system after determining that the current working node cannot meet the requirements for deploying the container set. It may also be to create a preset number of virtual machines in advance, and monitor the deployment of container sets in the virtual machines according to a preset period, so as to increase or decrease the number of virtual machines.
  • the scheduler can instruct the cloud system to create a virtual machine according to the demand, so that there can be enough working nodes (physical machines or virtual machines) for deploying the container set. Further, the scheduler can also instruct the cloud system to delete unnecessary virtual machines according to the usage of the virtual machines, thereby helping to save virtual machine resources.
  • the scheduler may include the application scheduler and the resource scheduler exemplarily shown in FIG. 1 .
  • the application scheduler may be used to implement the method in the method embodiment shown in FIG. 4 , and the scheduler in the related embodiment in FIG. 4 may be replaced with an application scheduler.
  • the resource scheduler can be used to implement the method in the method embodiment shown in FIG. 5 , and the scheduler in the related embodiment in FIG. 5 can be replaced with a resource scheduler.
  • the scheduler obtains the demand information and container set annotations from the application management cluster, and determines the demand in different time periods according to the number of users corresponding to the time period in the demand information and the number of users supported by a single container set in the container set annotations
  • the number of deployed container sets can predetermine the number of container sets that should be deployed in different time periods, which helps to better implement container set deployment planning and prevent the number of currently deployed container sets from meeting the needs of users to access applications. Requirements, problems that cause user access failures.
  • FIG. 6 and FIG. 7 are schematic structural diagrams of possible devices provided in the present application. These apparatuses can be used to implement the function of the scheduler in the above method embodiments, and thus can also realize the beneficial effects of the above method embodiments.
  • the device may be a scheduler as shown in FIG. 1 , specifically an application scheduler or a resource scheduler as shown in FIG. 1 .
  • the device 600 includes an acquisition module 601, which is used to acquire demand information and container set annotations from the application management cluster.
  • the demand information includes the time period and the number of users corresponding to the time period, and the container set annotation is used to indicate a single The number of users supported by the container set;
  • the processing module 602 is configured to determine the number M of container sets that need to be deployed in the time period according to the number of users corresponding to the time period and the number of users supported by a single container set, and determine the number M for deploying M
  • the target node of the container set ; generate a deployment plan according to the number M of container sets to be deployed in the time period and the target node for deploying the M container sets; wherein, M is an integer greater than or equal to 1.
  • FIG. 7 shows an apparatus 700 provided in the embodiment of the present application.
  • the apparatus shown in FIG. 7 may be a hardware circuit implementation manner of the apparatus shown in FIG. 6 .
  • the apparatus may be applicable to the flow chart shown above, and execute the function of the scheduler in the above method embodiment.
  • Figure 7 shows only the main components of the device.
  • the device 700 shown in FIG. 7 includes a communication interface 710, a processor 720 and a memory 730, wherein the memory 730 is used to store program instructions and/or data.
  • Processor 720 may cooperate with memory 730 .
  • Processor 720 may execute program instructions stored in memory 730 .
  • the processor 720 is used to perform the operations performed by the processing module 602 in the above-mentioned embodiments, and the communication interface 710 is used to perform the operations performed by the acquisition module 601 in the above-mentioned embodiments.
  • the memory 730 is coupled to the processor 720 .
  • the coupling in the embodiments of the present application is an indirect coupling or a communication connection between devices, units or modules, which may be in electrical, mechanical or other forms, and is used for information exchange between devices, units or modules.
  • At least one of the memories 730 may be included in the processor 720 .
  • the communication interface may be a transceiver, a circuit, a bus, a module, or other types of communication interfaces.
  • the transceiver when the communication interface is a transceiver, the transceiver may include an independent receiver and an independent transmitter; it may also be a transceiver integrated with a transceiver function, or be a communication interface.
  • Apparatus 700 may also include a communication link 740 .
  • the communication interface 710, the processor 720 and the memory 730 can be connected to each other through the communication line 740;
  • the communication line 740 can be a peripheral component interconnect standard (peripheral component interconnect, referred to as PCI) bus or an extended industry standard architecture (extended industry standard architecture , referred to as EISA) bus and so on.
  • PCI peripheral component interconnect
  • EISA extended industry standard architecture
  • the communication line 740 can be divided into address bus, data bus, control bus and so on. For ease of representation, only one thick line is used in FIG. 7 , but it does not mean that there is only one bus or one type of bus.
  • the present application provides a computer-readable storage medium, in which a computer program or instruction is stored, and when the computer program or instruction is executed by a computing device, the implementation of the above-mentioned method is realized. method in the example.
  • the present application provides a computing device, including a processor, the processor is connected to a memory, the memory is used to store computer programs, and the processor is used to execute the computer programs stored in the memory , so that the computing device implements the methods in the foregoing method embodiments.
  • the present application provides a computer program product, the computer program product includes a computer program or instruction, and when the computer program or instruction is executed by a device, the method in the above method embodiment is implemented.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种容器集的部署方法及装置,用于增加容器部署的灵活性,以满足用户的访问需求。在本申请中,方法包括:调度器从应用管理集群中获取需求信息和容器集注释,需求信息中包括时间段和时间段对应的用户量,容器集注释用于指示单个容器集支持的用户量;调度器根据时间段对应的用户量和单个容器集支持的用户量,确定在时间段中需要部署的容器集的数量M,以及确定用于部署M个容器集的目标节点;调度器根据时间段中需要部署的容器集的数量M,以及用于部署M个容器集的目标节点,生成部署规划;其中,M为大于或等于1的整数。

Description

一种容器集的部署方法及装置
相关申请的交叉引用
本申请要求在2021年06月22日提交中国专利局、申请号为202110693054.0、申请名称为“一种容器集的部署方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及资源调度技术领域,尤其涉及一种容器集的部署方法及装置。
背景技术
随着公有云以及互联网的发展,未来海量设备产生的数据开始指数级增长,越来越多的多云互联服务以及边缘云计算服务诞生。多云互联或者边缘站点可以有各自的应用管理集群,可用于实现资源内的统一管理。具体的,应用管理集群可包括上层系统和底层系统,上层系统可用于和底层系统中控制器协调,提供全局的资源调度管理。
现有的应用管理集群,比如Kubernetes集群,包括有应用程序编程接口(application programming interface,API)服务器、控制器和多个工作节点。当开发人员需要在应用管理集群中部署应用对应的容器集(pod)时,可以调用API服务器中接口发布容器集创建请求,容器集创建请求可以包括用于创建容器集的资源需求,比如中央处理器(central processing unit,CPU)个数需求、存储资源需求等。控制器可根据容器集创建请求,创建容器集并将创建好的容器集调度到符合资源需求的工作节点上,从而完成容器集的部署。
在应用管理集群中部署应用对应的容器集时,通常是部署预设数量的容器集,若当前部署的容器集数量不能满足大量用户访问应用的需求,则应用管理集群可进一步增加部署容器集的数量。但部署容器集需要一定的时间,导致在部署容器集过程中,出现部分用户访问应用失败的问题。
发明内容
本申请提供一种容器集的部署方法及装置,用于增加容器部署的灵活性,以满足用户的访问需求。
第一方面,本申请提供一种容器集的部署方法,该方法包括:调度器(scheduler)从应用管理集群中获取需求信息和容器集注释,需求信息中包括时间段和时间段对应的用户量,容器集注释用于指示单个容器集支持的用户量;调度器根据时间段对应的用户量和单个容器集支持的用户量,确定在时间段中需要部署的容器集的数量M,以及确定用于部署M个容器集的目标节点;调度器根据时间段中需要部署的容器集的数量M,以及用于部署M个容器集的目标节点,生成部署规划;其中,M为大于或等于1的整数。
上述技术方案中,从应用管理集群中获取需求信息和容器集注释,根据需求信息中时间段对应的用户量和容器集注释中单个容器集支持的用户量,确定在时间段中需要部署的容器集的数量,从而可以预先确定出不同时间段应该部署的容器集的数量,有助于更好的 实现容器集的部署规划,避免出现当前部署的容器集的数量不能满足用户访问应用的需求,导致用户访问失败的问题。
在一种可能的实现方式中,需求信息中还包括地址需求和运营商需求,调度器确定用于部署M个容器集的目标节点,包括:调度器通过应用管理集群中的API服务器,获取工作节点的节点标签,节点标签包括工作节点的所属地址和所属运营商;调度器确定所属地址和所属运营商符合需求信息中包括的地址需求和运营商需求的工作节点,作为用于部署M个容器集的目标节点。
上述技术方案中,调度器根据地址需求和运营商需求,从工作节点中确定出节点标签中所属地址符合地址需求,以及节点标签中所属运营商符合运营商需求的目标节点。从而可在符合需求信息的目标节点中部署容器集,相应的,用户可以使用对应的运营商,在对应的地理范围内访问目标节点中部署的容器集中的应用,避免出现用户跨地域和/或跨运营商访问应用,有助于降低用户访问的时延。
在一种可能的实现方式中,还包括:调度器向云系统发送虚拟机创建请求,虚拟机创建请求用于指示云系统创建虚拟机,相应的,云系统基于虚拟机创建请求创建对应的虚拟机,虚拟机在启动时,可以向API服务器发送节点注册请求,节点注册请求中包括虚拟机的所属地址和所属运营商。API服务器可以将虚拟机的所属地址和所属运营商存储至数据库中。调度器可通过API服务器从数据库中获取虚拟机的所属地址和所属运营商,并根据虚拟机的所属地址和所属运营商,生成虚拟机的节点标签,确定虚拟机为工作节点。
上述技术方案中,调度器可以根据需求,指示云系统创建虚拟机,从而可以有足够多的工作节点(物理机或者虚拟机)用于部署容器集。
在一种可能的实现方式中,需求信息中还包括应用标识,容器集注释中还包括运行于容器集中应用的应用标识;调度器从应用管理集群中获取需求信息和容器集注释,包括:针对于同一个应用,调度器通过应用管理集群中API服务器,获取同一个应用的应用标识对应的需求信息和容器集注释。
在一种可能的实现方式中,调度器生成部署规划之后,调度器还可以根据部署规划,在时间段的起始时刻之前,指示应用管理集群在M个容器集中每个容器集对应的目标节点上部署容器集;和/或,调度器根据部署规划,在时间段的终止时刻之后,指示应用管理集群在M个容器集中每个容器集对应的目标节点上删除容器集。
第二方面,本申请提供一种容器集的部署装置,该装置包括:获取模块,用于从应用管理集群中获取需求信息和容器集注释,需求信息中包括时间段和时间段对应的用户量,容器集注释用于指示单个容器集支持的用户量;处理模块,用于根据时间段对应的用户量和单个容器集支持的用户量,确定在时间段中需要部署的容器集的数量M,以及确定用于部署M个容器集的目标节点;根据时间段中需要部署的容器集的数量M,以及用于部署M个容器集的目标节点,生成部署规划;其中,M为大于或等于1的整数。
在一种可能的实现方式中,需求信息中还包括地址需求和运营商需求,处理模块确定用于部署M个容器集的目标节点时,具体用于:通过应用管理集群中的API服务器,获取工作节点的节点标签,节点标签包括工作节点的所属地址和所属运营商;确定所属地址和所属运营商符合需求信息中包括的地址需求和运营商需求的工作节点,作为用于部署M个容器集的目标节点。
在一种可能的实现方式中,处理模块还用于:向云系统发送虚拟机创建请求,虚拟机创建请求用于指示云系统创建虚拟机;通过应用管理集群中的API服务器获取虚拟机的所属地址和所属运营商,根据虚拟机的所属地址和所属运营商,生成虚拟机的节点标签,并确定虚拟机为工作节点。
在一种可能的实现方式中,需求信息中还包括应用标识,容器集注释中还包括运行于容器集中应用的应用标识;获取模块从应用管理集群中获取需求信息和容器集注释时,具体用于:针对于同一个应用,通过应用管理集群中API服务器,获取同一个应用的应用标识对应的需求信息和容器集注释。
在一种可能的实现方式中,处理模块生成部署规划之后,还用于:根据部署规划,在时间段的起始时刻之前,指示应用管理集群在M个容器集中每个容器集对应的目标节点上部署容器集;和/或,根据部署规划,在时间段的终止时刻之后,指示应用管理集群在M个容器集中每个容器集对应的目标节点上删除容器集。
第三方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被计算设备执行时,实现上述第一方面或第一方面中的任意一种方法。
第四方面,本申请提供一种计算设备,包括处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述计算设备执行上述第一方面或第一方面中的任意一种方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序或指令,当所述计算机程序或指令被计算设备执行时,实现上述第一方面或第一方面中的任意一种方法。
上述第二方面至第五方面中任一方面可以达到的技术效果可以参照上述第一方面中有益效果的描述,此处不再重复赘述。
附图说明
图1为本申请提供的一种容器集部署方法所适用的系统架构图;
图2为本申请提供的一种部署容器集的流程示意图;
图3为本申请提供的一种新定义的容器集描述的示意图;
图4为本申请提供的再一种部署容器集的流程示意图;
图5为本申请提供的一种创建虚拟机的流程图;
图6为本申请提供的一种部署容器集的装置的结构图;
图7为本申请提供的再一种部署容器集的装置的结构图。
具体实施方式
如图1为本申请示例性提供的一种容器集的部署方法所适用的系统架构图。示例性的,该系统中包括客户端、应用管理集群、调度器和工作节点。
其中,应用管理集群可用于容器集群的自动化部署、扩容以及运维。示例性的,应用管理集群中可以包括API服务器和控制器。API服务器可用于客户端向应用管理集群下发容器集创建请求。控制器可从API服务器中获取到容器集创建请求,根据容器集创建请求 创建预设数量的容器集,并将该预设数量的容器集调度到对应的工作节点中运行。示例性的,应用管理集群可以是Kubernetes集群。
调度器中包括有应用调度器(APP scheduler)。应用调度器可根据应用需求调度指令,对应用需求进行调度,比如增加应用需求、修改应用需求、删除应用需求、查询应用需求等。一种可能的方式中,API服务器还可以与应用调度器相连接,应用调度器可通过API服务器获得客户端下发的应用需求调度指令。
可选的,调度器中还可以包括资源调度器(resource scheduler),资源调度器可以与外部资源交互,为应用提供其运行所需要的虚拟机资源或者容器资源。外部资源可以是云系统,云系统比如为公有云系统、边缘云系统、混合云系统中的一个或多个。
工作节点可以是物理机或者虚拟机(virtual machine,VM),工作节点可以部署于不同地理位置中,工作节点也可以使用不同的运营商网络。其中工作节点可以有多个,工作节点的个数可在资源调度器的调度下发生变化。具体的,资源调度器可以指示云系统,由云系统创建或删除工作节点,从而控制工作节点的个数变化。
需要说明的是,API服务器可作为应用管理集群的对外接口,客户端、应用调度器、资源调度器、云系统或者其他装置均可以通过该API服务器访问应用管理集群。
结合图1示例性示出的系统架构图,先对本申请中应用管理集群创建容器集的流程解释说明。参照图2示例性示出的一种部署容器集的流程示意图。
步骤201,客户端向API服务器发送容器集创建(create pod)请求。相应的,API服务器接收来自客户端的容器集创建请求。该容器集创建请求中可以包括用于创建容器集的资源需求,比如CPU个数需求、存储资源需求等。
步骤202,API服务器根据容器集创建请求生成容器集描述。
步骤203,API服务器将容器集描述存储至数据库中。
步骤204,控制器通过API服务器监测到数据库中有新的容器集描述,根据容器集描述确定出可用于运行容器集的工作节点(即目标节点)。
步骤205,控制器将分配记录更新至数据库中,其中分配记录包括目标节点的标识。
步骤206,工作节点通过API服务器监测数据库的分配记录,若确定自己节点的标识记录在分配记录中,则可创建容器集,并启动容器集中的容器。
上述技术方案中,当开发人员通过客户端下发容器集创建请求时,应用管理集群可以先创建预设数量的容器集,并监测容器集的使用情况,根据容器集的使用情况确定当前容器集的数量是否可满足用户访问应用的需求,进而确定是否改变容器集的数量。示例性的,在容器集的数量不能满足用户访问应用的需求时,应用管理集群可以监测到容器集的使用负载大于负载阈值,相应的,应用管理集群可以再次部署预设数量的容器集。而部署容器集需要一定的时间,导致在部署容器集过程中,出现部分用户访问应用失败的问题。
如此,本申请提供一种容器集的部署方法,该方法可提前确定出用户需求所对应的容器集的数量。应用管理集群可一次性部署该数量的容器集,从而避免出现容器集的数量不能满足用户访问应用的需求,进而导致出现部分用户访问应用失败的问题。
需要说明的是,本申请中可以预先通过API服务器对外提供的接口定义用于对系统中应用需求进行调度的函数(或者称为是方法或API),从而开发人员可以在客户端处下发应用需求调度指令。应用需求调度指令可以包括增加应用需求、修改应用需求、删除应用需 求、查询应用需求中的一项或多项,如下以增加应用需求为例说明定义函数的实现方式。
本申请中,开发人员在客户端处可以调用该函数并输入对应的参数,也可以理解,开发人员可以通过客户端向API服务器下发增加应用需求的调度指令(可称为第一调度指令),该第一调度指令中包括有创建应用对应的需求信息。
一种可选实现方式中,需求信息中可以包括待调度应用对应的应用标识、时间段和用户量,以用于指示在对应时间段中需要使用该应用的用户量(或称为访问量)。比如待调度应用为实时通信(real-time communication,RTC)服务,需求信息可以表示为:“应用标识:RTC,时间段:10:00-11:00,用户量:3W”,该需求信息可用于表征在10:00-11:00这个时间段中预计有3W的用户需要使用RTC服务。
进一步的,该需求信息中还可以包括地址需求和/或运营商需求,以用于指示在对应时间段、对应地址、对应运营商所需要使用应用的用户量。比如待调度应用为RTC服务,需求信息可以表示为:“应用标识:RTC,时间段:10:00-11:00,用户量:3W,地址需求:上海,运营商需求:运营商a”,那么该需求信息可用于表征在10:00-11:00这个时间段中,预计有3W的用户在上海通过运营商a来使用RTC服务。
本申请中,开发人员可以通过客户端向API服务器下发多个第一调度指令,每个第一调度指令中包括有各自的需求信息。相应的,API服务器可以接收到来自客户端的多个第一调度指令,并将多个第一调度指令中的需求信息,存储于数据库中,该多个第一调度指令中的需求信息可通过API服务器被获取。
进一步的,本申请还可以新定义容器集描述,容器集描述中包括容器集注释(annotations),容器集注释可用于指示单个容器集在运行某个应用时可支持的最大用户量。示例性的,容器集注释中可以包括容器集中运行应用的标识、单个容器集可支持的最大用户量。本申请中,新定义的容器集描述也可以存储于数据库中,该容器集描述可通过API服务器被获取。示例性的,如图3为本申请提供的一种新定义的容器集描述,该容器集描述对应的容器集用于运行RTC服务,该容器集描述中容器集注释可参照图3中加粗部分,容器集注释中包括“appDescription(app描述)”,“appDescription”中包括“name:RTC;value:3000”,该容器集注释表示应用标识为RTC,单个容器集可支持的最大用户量为3000。
进一步的,容器集描述中还可以包括部署容器集所需的资源需求,参见图3中“cpu:100m”,此处,需要解释的是,CPU资源基本单位为millicores(即一个核的1/1000),而容器集描述中指示部署容器集需要100m(即100millicores),则可以表征该部署容器集需要100×1/1000=0.1个核。如此,可确定出部署该容器集需要0.1个CPU。
本申请中,应用管理集群可以为多个应用提供容器集。相应的,可以定义每个应用对应的容器集描述和需求信息。比如,针对于应用1,可定义需求信息1和容器集描述1,其中需求信息1表征在时间段1中使用应用1的用户量;容器集描述1中容器集注释1表征单个容器集在运行应用1时可支持的用户量。针对于应用2,可定义需求信息2和容器集描述2,其中需求信息2表征在时间段2中使用应用2的用户量;容器集描述2中容器集注释2表征单个容器集在运行应用2时可支持的用户量。调度器在生成部署规划时,可以针对于同一个应用的容器集描述(或者说容器集注释)和需求信息,来生成该应用对应的部署规划,具体可参见下述图4相关实施例中的描述。
基于上述描述,可以针对于同一个应用,根据该应用对应的容器集描述和需求信息, 确定需要部署的容器集的数量,进而统一部署该数量的容器集。参照图4解释说明本申请示例性提供的一种部署容器集的流程。该流程中:
步骤401,调度器从应用管理集群中获取需求信息和容器集注释。
调度器可以通过API服务器从应用管理集群中获取需求信息和容器集注释。在一种可能的实现方式中,调度器可以针对于同一个应用,根据该同一个应用的应用标识,通过应用管理集群中的API服务器,获取该同一个应用的应用标识对应的需求信息和容器集注释,该需求信息中的应用标识和该容器集注释中的应用标识相同。在一种可能的实现方式中,需求信息可以是调度器通过API服务器获取到的第一调度指令中的信息。
本申请中,调度器可以从应用管理集群中获取到多个需求信息。举例来说,多个需求信息比如是需求信息1、需求信息2和需求信息3。其中,需求信息1为“应用标识:RTC,时间段:10:00-11:00,用户量:3W,地址需求:上海,运营商需求:运营商a”;需求信息2为“应用标识:RTC,时间段:11:00-12:00,用户量:3W,地址需求:湖南,运营商需求:运营商b”;需求信息3为“应用标识:RTC,时间段:12:00-13:00,用户量:4.5W,地址需求:浙江,运营商需求:运营商b”。相应的,调度器从应用管理集群中获取到的容器集注释,比如是“应用标识:RTC;value:3000”。
步骤402,调度器根据时间段对应的用户量和单个容器集支持的用户量,确定在对应的时间段中需要部署的容器集的数量M,以及确定用于部署M个容器集的目标节点,M为大于或等于1的正整数。
调度器可以根据需求信息中时间段对应的用户量和单个容器集支持的用户量,确定该需求信息对应的时间段中需要部署的容器集的数量。以上述需求信息1为例,则可以确定出需要在时间段10:00-11:00部署10个容器集((用户量:3W)/(value:3000)=10)。其他需求信息类似,以得到各需求信息对应的不同时段的容器集个数的部署需求。
进一步的,调度器可针对每个需求信息,从多个工作节点中确定出可用于部署该需求信息对应的容器集的N个目标节点,其中N为大于或等于1的正整数。一种可选方式中,调度器可以确定每个工作节点的剩余资源,确定工作节点的剩余资源是否可满足部署容器集的资源需求,在工作节点的剩余资源满足部署容器集的资源需求的情况下,可以将该工作节点作为目标节点。比如部署一个资源集需要3个CPU,工作节点0中剩余8个CPU,调度器可以确定工作节点0中可以部署容器集,且可以最多部署2个容器集;而工作节点1中剩余2个CPU,调度器可以确定工作节点1中不能部署容器集。如此得到用于部署该需求信息对应的容器集的N个目标节点。
本申请中,每个工作节点可对应于自己的节点标签,节点标签可以是在部署工作节点时根据工作节点的所属位置和/或所属运营商生成的,其中,工作节点的所属运营商可以理解是,为工作节点提供网络通信服务的运营商。调度器可以通过API服务器,从数据库中获取每个工作节点的节点标签。
节点标签中可以包括该工作节点的所属位置和/或所属运营商。以节点标签中包括所属位置和所属运营商为例说明,比如,工作节点0部署于上海,且该工作节点的运营商是运营商a,那么工作节点0的节点标签0可以是“所属地址:上海,所属运营商:运营商a”。
相应的,需求信息中还可以包括地址需求和运营商需求,调度器可获取多个工作节点中每个工作节点的节点标签,然后根据需求信息中包括的地址需求和运营商需求、以及每 个工作节点的节点标签,从多个工作节点中确定出N个目标节点,其中目标节点的节点标签中所属地址符合需求信息中的地址需求,以及节点标签中所属运营商符合需求信息中的运营商需求。举例来说,需求信息1为“应用标识:RTC,时间段:10:00-11:00,用户量:3W,地址需求:上海,运营商需求:运营商a”。调度器可以获取多个工作节点的节点标签,比如工作节点0的节点标签0为“所属地址:上海,所属运营商:运营商a”,工作节点1的节点标签1为“所属地址:上海,所属运营商:运营商b”,工作节点2的节点标签2为“所属地址:湖南,所属运营商:运营商b”等。调度器可以确定出工作节点0的节点标签0符合需求信息中的地址需求和运营商需求,而工作节点1或者工作节点2不符合需求信息中的地址需求和运营商需求。
在上述方式中,调度器根据地址需求和/或运营商需求,从工作节点中确定出节点标签中所属地址符合地址需求,和/或,节点标签中所属运营商符合运营商需求的目标节点。从而可在符合需求信息的目标节点中部署容器集,相应的,用户可以使用对应的运营商,和/或,在对应的地理范围内访问目标节点中部署的容器集中的应用,避免用户跨地域和/或跨运营商访问应用,有助于降低用户访问的时延。
在一种可能的实现方式中,调度器可以根据需求信息、每个工作节点的剩余资源、节点标签中该工作节点的所属位置和/或所属运营商,确定每个工作节点的评分,基于评分从多个工作节点中确定出N个目标节点。
步骤403,调度器根据时间段中需要部署的容器集的数量M,以及用于部署M个容器集的目标节点,生成部署规划。
调度器可以根据需求信息,确定与需求信息对应的容器集的数量M,以及用于部署M个容器集的目标节点,然后生成与需求信息相对应的部署规划。
示例性的,调度器可以根据上述需求信息1、需求信息2和需求信息3,生成如表1所示的部署规划,其中需求信息1对应于部署规划1,需求信息2对应于部署规划2,需求信息3对应于部署规划3。示例性的,部署规划1中包括的时间段为10:00-11:00,地址/运营商为上海/运营商a,需要部署10个容器集,且该10个容器集可部署于目标节点11至目标节点1N中。其他需求信息对应的部署规划类似。
表1
Figure PCTCN2022087397-appb-000001
步骤404,调度器根据部署规划,指示应用管理集群创建和/或删除容器集。
调度器可根据部署规划来指示应用管理集群在对应的目标节点上部署容器集和/或删除容器集。本申请中,调度器可以根据部署规划,在部署规划的时间段的起始时刻之前,指示应用管理集群在对应的目标节点上部署容器集。示例性的,调度器可以根据起始时刻 和第一预设时长,确定第一时刻,并在该第一时刻指示应用管理集群在对应的目标节点上部署容器集,其中第一预设时长可以大于或等于部署容器集所需的时长。调度器还可以根据部署规划,在部署规划的时间段的终止时刻之后,指示应用管理集群在对应的目标节点上删除容器集。示例性的,调度器可以根据终止时刻和第二预设时长,确定第二时刻,并在该第二时刻指示应用管理集群在对应的目标节点上删除容器集。
仍以上述部署规划1来解释,因为部署规划1指示需要在10:00-11:00之间部署10个容器集,则调度器可以在10:00之前(比如9:59),向应用管理集群发送容器集创建请求,该容器集创建请求可用于指示应用管理集群在目标节点11至目标节点1N上共计部署10个容器集。调度器还可以在11:00之后(比如11:01),向应用管理集群发送容器集删除请求,该容器集删除请求可用于指示应用管理集群在目标节点11至目标节点1N上删除之前部署的10个容器集。
需要说明的是,调度器可以基于目标节点的剩余资源、节点标签中该工作节点的所属位置和/或所属运营商等信息,确定在目标节点上部署一个或多个容器集。相应的,调度器在向应用管理集群发送容器集创建请求时,可以指示出应用管理集群在哪个目标节点上部署哪个容器集。如上述例子中,调度器确定出部署规划1中包括有5目标节点,该5目标节点与10个容器集的对应关系如表2所示。比如调度器可以在10:00之前,向应用管理集群发送容器集创建请求,该容器集创建请求可用于指示应用管理集群在目标节点11上部署容器集1、容器集2。进一步的,调度器还可以在11:00之后,向应用管理集群发送容器集删除请求,该容器集删除请求可用于指示应用管理集群在目标节点11上删除容器集1、容器集2。
表2
目标节点 容器集
目标节点11 容器集1、容器集2
目标节点12 容器集3
目标节点13 容器集4、容器集5、容器集6
目标节点14 容器集7
目标节点15 容器集8、容器集9、容器集10
还需要说明的是,调度器可以对多个部署规划做处理,得到更有效的部署方法。比如部署规划1指示在10:00-11:00、在上海/运营商a对应的目标节点上部署10个容器集。而且还存在部署规划4指示了在11:00-12:00、在上海/运营商a对应的目标节点上部署15个容器集,则调度器可以不在11:00之后,向应用管理集群发送容器集删除请求,而是在11:00之前向应用管理集群发送容器集创建请求,该容器集创建请求用于指示应用管理集群在指示的目标节点上部署5个容器集。通过该方式,可有助于避免容器集被频繁的创建和删除,从而有助于节省时延和资源。
本申请中,调度器根据部署规划,可能并不能从当前的工作节点中确定出目标节点,则调度器可以指示部署新的工作节点,并在新部署的工作节点中确定目标节点。该新部署的工作节点可以是物理机或者虚拟机。
在一种可能的实现方式中,调度器调用云系统中创建虚拟机的接口,指示云系统创建虚拟机,该创建的虚拟机可用于运行调度器部署规划中需要部署的容器集。
参照图5示例性示出的一种创建虚拟机的流程图。该流程中:
步骤501,调度器向云系统发送虚拟机创建请求,该虚拟机创建请求可指示云系统创建符合地址需求和运营商需求的预设数量的虚拟机。
步骤502,云系统响应于虚拟机创建请求,使用制作好的虚拟机镜像,创建满足地址需求、运营商需求的预设数量的虚拟机。
步骤503,云系统通过参数注入或者脚本注入的方式,向虚拟机传入API服务器的地址(比如网际互连协议(internet protocol,IP)地址)。
步骤504,虚拟机在运行之后,可以自动执行脚本向API服务器发送节点注册请求,该节点注册请求中可以包括有虚拟机的所属地址和所属运营商。进一步的,API服务器可以将虚拟机的所属地址和所属运营商对应存储至数据库中。
步骤505,调度器通过API服务器从数据库中获取虚拟机的所属位置、所属运营商。
步骤506,调度器根据虚拟机的所属位置、所属运营商,生成虚拟机的节点标签。调度器可将该虚拟机作为新增的工作节点。
本申请中,调度器可以在确定当前的工作节点不能满足部署容器集的需求之后,向云系统发送虚拟机创建请求。也可以是预先创建预设数量的虚拟机,并按照预设周期监测虚拟机中部署容器集的情况,进而增加或者减少虚拟机的数量。
通过该方式,调度器可以根据需求,指示云系统创建虚拟机,从而可以有足够多的工作节点(物理机或者虚拟机)用于部署容器集。进一步的,调度器还可以根据虚拟机的使用情况指示云系统删除不需要的虚拟机,从而有助于节省虚拟机资源。
本申请中,调度器可以包括图1示例性示出的应用调度器和资源调度器。一种可能的实现方式中,应用调度器可以用于实现如图4所示方法实施例中的方法,可以将图4相关实施例中调度器替换为应用调度器。资源调度器可以用于实现如图5所示方法实施例中的方法,可以将图5相关实施例中调度器替换为资源调度器。
上述技术方案中,调度器从应用管理集群中获取需求信息和容器集注释,根据需求信息中时间段对应的用户量和容器集注释中单个容器集支持的用户量,确定在不同时间段中需要部署的容器集的数量,从而可以预先确定出不同时间段应该部署的容器集的数量,有助于更好的实现容器集部署规划,避免出现当前部署的容器集的数量不能满足用户访问应用的需求,导致用户访问失败的问题。
基于上述内容和相同构思,图6和图7为本申请的提供的可能的装置的结构示意图。这些装置可以用于实现上述方法实施例中调度器的功能,因此也能实现上述方法实施例所具备的有益效果。在本申请中,该装置可以是如图1所示的调度器,具体可以是如图1所示的应用调度器或者资源调度器。
如图6所示,该装置600包括获取模块601,用于从应用管理集群中获取需求信息和容器集注释,需求信息中包括时间段和时间段对应的用户量,容器集注释用于指示单个容器集支持的用户量;处理模块602,用于根据时间段对应的用户量和单个容器集支持的用户量,确定在时间段中需要部署的容器集的数量M,以及确定用于部署M个容器集的目标节点;根据时间段中需要部署的容器集的数量M,以及用于部署M个容器集的目标节 点,生成部署规划;其中,M为大于或等于1的整数。
如图7所示为本申请实施例提供的装置700,图7所示的装置可以为图6所示的装置的一种硬件电路的实现方式。该装置可适用于前面所示出的流程图中,执行上述方法实施例中调度器的功能。为了便于说明,图7仅示出了该装置的主要部件。
图7所示的装置700包括通信接口710、处理器720和存储器730,其中存储器730用于存储程序指令和/或数据。处理器720可能和存储器730协同操作。处理器720可能执行存储器730中存储的程序指令。存储器730中存储的指令或程序被执行时,该处理器720用于执行上述实施例中处理模块602执行的操作,通信接口710用于执行上述实施例中获取模块601执行的操作。
存储器730和处理器720耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。所述存储器730中的至少一个可以包括于处理器720中。
在本申请实施例中,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。在本申请实施例中,通信接口为收发器时,收发器可以包括独立的接收器、独立的发射器;也可以集成收发功能的收发器、或者是通信接口。
装置700还可以包括通信线路740。其中,通信接口710、处理器720以及存储器730可以通过通信线路740相互连接;通信线路740可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述通信线路740可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
基于上述内容和相同构思,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被计算设备执行时,实现上述方法实施例中的方法。
基于上述内容和相同构思,本申请提供一种计算设备,包括处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述计算设备实现上述方法实施例中的方法。
基于上述内容和相同构思,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序或指令,当所述计算机程序或指令被装置执行时,实现上述方法实施例中的方法。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (12)

  1. 一种容器集的部署方法,其特征在于,包括:
    调度器从应用管理集群中获取需求信息和容器集注释,所述需求信息中包括时间段和所述时间段对应的用户量,所述容器集注释用于指示单个容器集支持的用户量;
    所述调度器根据所述时间段对应的用户量和所述单个容器集支持的用户量,确定在所述时间段中需要部署的容器集的数量M,以及确定用于部署M个容器集的目标节点,其中,M为大于或等于1的整数;
    所述调度器根据所述时间段中需要部署的容器集的数量M,以及用于部署所述M个容器集的目标节点,生成部署规划。
  2. 如权利要求1所述的方法,其特征在于,所述需求信息中还包括地址需求和运营商需求,所述调度器确定用于部署M个容器集的目标节点,包括:
    所述调度器通过所述应用管理集群中的应用程序编程接口API服务器,获取工作节点的节点标签,所述节点标签包括所述工作节点的所属地址和所属运营商;
    所述调度器确定所属地址和所属运营商符合所述需求信息中包括的地址需求和运营商需求的工作节点,作为用于部署所述M个容器集的目标节点。
  3. 如权利要求1所述的方法,其特征在于,还包括:
    所述调度器向云系统发送虚拟机创建请求,所述虚拟机创建请求用于指示所述云系统创建虚拟机;
    所述调度器通过所述应用管理集群中的API服务器获取所述虚拟机的所属地址和所属运营商,并根据所述虚拟机的所属地址和所属运营商,生成所述虚拟机的节点标签,并确定所述虚拟机为工作节点。
  4. 如权利要求1所述的方法,其特征在于,所述需求信息中还包括应用标识,所述容器集注释中还包括运行于所述容器集中应用的应用标识;
    所述调度器从应用管理集群中获取需求信息和容器集注释,包括:
    针对于同一个应用,所述调度器通过所述应用管理集群中的API服务器,获取所述同一个应用的应用标识对应的需求信息和容器集注释。
  5. 如权利要求1所述的方法,其特征在于,所述调度器生成部署规划之后,还包括:
    所述调度器根据所述部署规划,在所述时间段的起始时刻之前,指示所述应用管理集群在所述M个容器集中每个容器集对应的目标节点上部署所述容器集;和/或,
    所述调度器根据所述部署规划,在所述时间段的终止时刻之后,指示所述应用管理集群在所述M个容器集中每个容器集对应的目标节点上删除所述容器集。
  6. 一种容器集的部署装置,其特征在于,包括:
    获取模块,用于从应用管理集群中获取需求信息和容器集注释,所述需求信息中包括时间段和所述时间段对应的用户量,所述容器集注释用于指示单个容器集支持的用户量;
    处理模块,用于根据所述时间段对应的用户量和所述单个容器集支持的用户量,确定在所述时间段中需要部署的容器集的数量M,以及确定用于部署M个容器集的目标节点;根据所述时间段中需要部署的容器集的数量M,以及用于部署所述M个容器集的目标节点,生成部署规划;其中,M为大于或等于1的整数。
  7. 如权利要求6所述的装置,其特征在于,所述需求信息中还包括地址需求和运营商需求,所述处理模块确定用于部署M个容器集的目标节点时,具体用于:
    通过所述应用管理集群中的应用程序编程接口API服务器,获取工作节点的节点标签,所述节点标签包括所述工作节点的所属地址和所属运营商;
    确定所属地址和所属运营商符合所述需求信息中包括的地址需求和运营商需求的工作节点,作为用于部署所述M个容器集的目标节点。
  8. 如权利要求6所述的装置,其特征在于,所述处理模块还用于:
    向云系统发送虚拟机创建请求,所述虚拟机创建请求用于指示所述云系统创建虚拟机;
    通过所述应用管理集群中的API服务器获取所述虚拟机的所属地址和所属运营商,并根据所述虚拟机的所属地址和所属运营商,生成所述虚拟机的节点标签,并确定所述虚拟机为工作节点。
  9. 如权利要求6所述的装置,其特征在于,所述需求信息中还包括应用标识,所述容器集注释中还包括运行于所述容器集中应用的应用标识;
    所述获取模块从应用管理集群中获取需求信息和容器集注释时,具体用于:
    针对于同一个应用,通过所述应用管理集群中的API服务器,获取所述同一个应用的应用标识对应的需求信息和容器集注释。
  10. 如权利要求6所述的装置,其特征在于,所述处理模块生成部署规划之后,还用于:
    根据所述部署规划,在所述时间段的起始时刻之前,指示所述应用管理集群在所述M个容器集中每个容器集对应的目标节点上部署所述容器集;和/或,
    根据所述部署规划,在所述时间段的终止时刻之后,指示所述应用管理集群在所述M个容器集中每个容器集对应的目标节点上删除所述容器集。
  11. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被计算设备执行时,实现如权利要求1至5中任一项所述的方法。
  12. 一种计算设备,其特征在于,包括处理器,所述处理器与存储器相连,所述存储器存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述计算设备执行如权利要求1至5中任一项所述的方法。
PCT/CN2022/087397 2021-06-22 2022-04-18 一种容器集的部署方法及装置 Ceased WO2022267646A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22827148.2A EP4345614A4 (en) 2021-06-22 2022-04-18 CONTAINER DEPLOYMENT METHOD AND APPARATUS
US18/545,838 US20240118935A1 (en) 2021-06-22 2023-12-19 Pod deployment method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110693054.0A CN115509676A (zh) 2021-06-22 2021-06-22 一种容器集的部署方法及装置
CN202110693054.0 2021-06-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/545,838 Continuation US20240118935A1 (en) 2021-06-22 2023-12-19 Pod deployment method and apparatus

Publications (1)

Publication Number Publication Date
WO2022267646A1 true WO2022267646A1 (zh) 2022-12-29

Family

ID=84499879

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/087397 Ceased WO2022267646A1 (zh) 2021-06-22 2022-04-18 一种容器集的部署方法及装置

Country Status (4)

Country Link
US (1) US20240118935A1 (zh)
EP (1) EP4345614A4 (zh)
CN (1) CN115509676A (zh)
WO (1) WO2022267646A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115964176A (zh) * 2023-01-05 2023-04-14 海马云(天津)信息技术有限公司 云计算集群调度方法、电子设备和存储介质
CN116248689A (zh) * 2023-03-07 2023-06-09 宁波通商银行股份有限公司 一种云原生应用的扩容方法、装置、设备和介质
CN119402496A (zh) * 2024-12-31 2025-02-07 阿里云计算有限公司 云网关容器化管理系统与方法、存储介质及程序产品

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12131176B2 (en) * 2022-01-19 2024-10-29 VMware LLC Cluster leader selection via ping tasks of service instances
CN118114214B (zh) * 2024-04-30 2024-07-26 杭州凌武科技有限公司 在Kubernetes中Pod执行特权用户命令的方法、装置及计算机设备
CN119299304B (zh) * 2024-12-09 2025-04-11 浙江大华技术股份有限公司 容器云平台扩容方法、电子设备和计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808347A (zh) * 2014-12-31 2016-07-27 北京神州泰岳软件股份有限公司 集群服务器部署计算方法及装置
US20180039524A1 (en) * 2016-08-03 2018-02-08 International Business Machines Corporation Predictive layer pre-provisioning in container-based virtualization
CN108965485A (zh) * 2018-09-30 2018-12-07 北京金山云网络技术有限公司 容器资源的管理方法、装置和云平台
CN109117149A (zh) * 2018-07-13 2019-01-01 下代互联网重大应用技术(北京)工程研究中心有限公司 一种行为分析系统部署方法及电子设备
CN110471671A (zh) * 2019-08-12 2019-11-19 深圳前海微众银行股份有限公司 应用部署方法、装置、系统、设备及计算机可读存储介质
CN111385142A (zh) * 2020-02-14 2020-07-07 重庆邮电大学 基于Kubernetes的自适应伸缩web容器的方法
CN112363825A (zh) * 2020-10-16 2021-02-12 北京五八信息技术有限公司 一种弹性伸缩方法及装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5454135B2 (ja) * 2009-12-25 2014-03-26 富士通株式会社 仮想マシン移動制御装置、仮想マシン移動制御方法および仮想マシン移動制御プログラム
US8799888B1 (en) * 2011-05-20 2014-08-05 Amazon Technologies, Inc. Updating an application
US8850419B1 (en) * 2011-05-20 2014-09-30 Amazon Technologies, Inc. Descaling computing resources
US9654411B2 (en) * 2013-08-27 2017-05-16 Vmware, Inc. Virtual machine deployment and management engine
US20150347170A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US9712604B2 (en) * 2014-05-30 2017-07-18 Vmware, Inc. Customized configuration of cloud-based applications prior to deployment
JP2016171472A (ja) * 2015-03-13 2016-09-23 富士通株式会社 中継装置の選択方法、中継装置の選択プログラム、及び、情報処理システム
US11023264B2 (en) * 2017-07-18 2021-06-01 Vmware, Inc. Blueprint application storage policy
US10841152B1 (en) * 2017-12-18 2020-11-17 Pivotal Software, Inc. On-demand cluster creation and management
US11693698B2 (en) * 2018-11-23 2023-07-04 Netapp, Inc. System and method for infrastructure scaling
US10949239B2 (en) * 2018-12-14 2021-03-16 Hewlett Packard Enterprise Development Lp Application deployment in a container management system
US11507403B2 (en) * 2019-01-24 2022-11-22 Vmware, Inc. Host computing systems determination to deploy virtual machines based on disk specifications
US11003431B2 (en) * 2019-03-18 2021-05-11 Vmware, Inc. Generating predictive metrics for virtualized deployments
CN110888714B (zh) * 2019-11-26 2023-06-23 北京京东尚科信息技术有限公司 容器的调度方法、装置和计算机可读存储介质
US20220136722A1 (en) * 2020-11-05 2022-05-05 Schneider Electric Buildings, Llc Software-defined master system for smart buildings
US11469944B1 (en) * 2021-06-14 2022-10-11 Oracle International Corporation Techniques for migrating worker nodes to a new manager instance
US11928503B2 (en) * 2021-06-22 2024-03-12 International Business Machines Corporation Cognitive scheduler for Kubernetes

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808347A (zh) * 2014-12-31 2016-07-27 北京神州泰岳软件股份有限公司 集群服务器部署计算方法及装置
US20180039524A1 (en) * 2016-08-03 2018-02-08 International Business Machines Corporation Predictive layer pre-provisioning in container-based virtualization
CN109117149A (zh) * 2018-07-13 2019-01-01 下代互联网重大应用技术(北京)工程研究中心有限公司 一种行为分析系统部署方法及电子设备
CN108965485A (zh) * 2018-09-30 2018-12-07 北京金山云网络技术有限公司 容器资源的管理方法、装置和云平台
CN110471671A (zh) * 2019-08-12 2019-11-19 深圳前海微众银行股份有限公司 应用部署方法、装置、系统、设备及计算机可读存储介质
CN111385142A (zh) * 2020-02-14 2020-07-07 重庆邮电大学 基于Kubernetes的自适应伸缩web容器的方法
CN112363825A (zh) * 2020-10-16 2021-02-12 北京五八信息技术有限公司 一种弹性伸缩方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4345614A4 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115964176A (zh) * 2023-01-05 2023-04-14 海马云(天津)信息技术有限公司 云计算集群调度方法、电子设备和存储介质
CN116248689A (zh) * 2023-03-07 2023-06-09 宁波通商银行股份有限公司 一种云原生应用的扩容方法、装置、设备和介质
CN116248689B (zh) * 2023-03-07 2025-10-21 宁波通商银行股份有限公司 一种云原生应用的扩容方法、装置、设备和介质
CN119402496A (zh) * 2024-12-31 2025-02-07 阿里云计算有限公司 云网关容器化管理系统与方法、存储介质及程序产品

Also Published As

Publication number Publication date
CN115509676A (zh) 2022-12-23
US20240118935A1 (en) 2024-04-11
EP4345614A1 (en) 2024-04-03
EP4345614A4 (en) 2024-05-22

Similar Documents

Publication Publication Date Title
WO2022267646A1 (zh) 一种容器集的部署方法及装置
US11704144B2 (en) Creating virtual machine groups based on request
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
CN107145380B (zh) 虚拟资源编排方法及装置
WO2018149221A1 (zh) 一种设备管理方法及网管系统
JP2024501005A (ja) コンテナクラスタのための管理方法および装置
CN112965817B (zh) 资源管理方法、装置和电子设备
WO2020108443A1 (zh) 一种虚拟化管理方法及装置
EP3893437B1 (en) Method and device for deploying virtual network function
CN112437129B (zh) 集群的管理方法及集群的管理装置
CN110635944A (zh) 一种集群网络配置方法、装置及电子设备和存储介质
US11301284B2 (en) Method for managing VNF instantiation and device
WO2021109750A1 (zh) 节点管理方法、装置、设备、存储介质和系统
CN111163140A (zh) 资源获取和分配的方法、装置和计算机可读存储介质
CN112306625B (zh) 一种部署虚拟机的方法及相关装置
CN109413011B (zh) 公共服务资源申请方法、相关设备及系统
CN105373563B (zh) 数据库切换方法及装置
CN112306567B (zh) 集群管理系统和容器管控方法
CN112087311A (zh) 一种虚拟网络功能vnf部署方法及装置
CN115225482B (zh) 一种基于Kubernetes进行Pod容器网络配置的方法及装置
CN114721827B (zh) 一种数据处理方法及装置
CN114938375B (zh) 一种容器组更新设备及容器组更新方法
US20250293933A1 (en) Instantiation method and apparatus for virtualised network function vnf
CN114745377A (zh) 边缘云集群服务系统及实现方法
WO2022214012A1 (zh) 实现应用程序的多语言翻译的系统、方法、设备和介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22827148

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022827148

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022827148

Country of ref document: EP

Effective date: 20231229

NENP Non-entry into the national phase

Ref country code: DE