System for managing and scheduling containers
First Claim
1. A computer-implemented method, comprising:
- under the control of one or more computer systems configured with executable instructions,creating a cluster and a cluster identifier that identifies the cluster, wherein the cluster represents a set of container instances associated with a customer of a computing resource service provider that are registered to the cluster and configured to run one or more software containers;
obtaining an image of a software container configured to execute within a computer system instance, wherein the software container comprises data and one or more processes which, when executed in the computer system instance, are isolated from other processes running within the computer system instance, and wherein the image is an entire copy of a particular state of the software container at a time the image was generated;
receiving a request to launch a set of images, including the image of the software container, in accordance with a task definition, wherein the task definition identifies a set of software containers, including the software container, that are assigned to start as a group and specifies an allocation of resources to the set of software containers, wherein the request specifies the cluster identifier of the cluster; and
in response to the request to launch the one or more images,determining a subset of the set of container instances represented by the cluster specified by the cluster identifier in which to launch the set of software containers, wherein one or more container instances are determined according to a placement scheme; and
launching the set of images to yield running software containers within the subset of the set of container instances so that the running software containers are allocated resources in accordance with the allocation of resources specified in the task definition.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for a container service that obtains a software image of a software container that has been configured to be executed within a computer system instance registered to a cluster by one or more processors. The container service is configured to receive a request to launch the software image in accordance with a task definition, wherein the task definition specifies an allocation of resources for the software container. The container service may then determine, according to a placement scheme, a subset of a set of container instances registered to the cluster in which to launch the software image in accordance with the task definition. Upon determining the subset of the set of container instances, the container service may launch the software image as one or more running software containers in the set of container instances in accordance with the task definition.
-
Citations
19 Claims
-
1. A computer-implemented method, comprising:
-
under the control of one or more computer systems configured with executable instructions, creating a cluster and a cluster identifier that identifies the cluster, wherein the cluster represents a set of container instances associated with a customer of a computing resource service provider that are registered to the cluster and configured to run one or more software containers; obtaining an image of a software container configured to execute within a computer system instance, wherein the software container comprises data and one or more processes which, when executed in the computer system instance, are isolated from other processes running within the computer system instance, and wherein the image is an entire copy of a particular state of the software container at a time the image was generated; receiving a request to launch a set of images, including the image of the software container, in accordance with a task definition, wherein the task definition identifies a set of software containers, including the software container, that are assigned to start as a group and specifies an allocation of resources to the set of software containers, wherein the request specifies the cluster identifier of the cluster; and in response to the request to launch the one or more images, determining a subset of the set of container instances represented by the cluster specified by the cluster identifier in which to launch the set of software containers, wherein one or more container instances are determined according to a placement scheme; and launching the set of images to yield running software containers within the subset of the set of container instances so that the running software containers are allocated resources in accordance with the allocation of resources specified in the task definition. - View Dependent Claims (2, 3, 4)
-
-
5. A system, comprising:
-
one or more processors; memory including instructions that, when executed by the one or more processors, cause the system to implement at least; a backend service that; receives placement requests for a set of container instances, wherein the set of container instances host a corresponding set of container agents, receives a task definition that specifies, for the set of containers, locations of software images for individual containers of the set of containers and resources to be allocated to the individual containers of the set of containers, ensures that the resources specified by the task definition are available within the set of container instances, and receives information from the set of container agents about states of a set of running containers in the set of container instances, provides the information to a scheduler; and the scheduler that, based at least in part on a placement scheme, the task definition, and the information provided by the backend service; determines a subset of the set of container instances registered to a cluster within which to place individual containers of the set of containers, the subset determined based at least in part on the resources to be allocated to the individual containers of the set of containers and amounts of available resources within individual container instances of the set of container instances registered to the cluster, notifies the container agent to allocate resources for the individual containers within the subset according to the resources to be allocated to the individual containers specified by the task definition, and notifies the container agent to launch, within the subset and from locations of the software images specified by the task definition, the set of containers as the set of running containers. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer-readable storage medium having stored thereon executable instructions that, when executed by one or more processors of a computer system, cause the computer system to at least:
-
obtain a software image of a software container of a set of software containers configured to execute within a computer system instance; receive a task definition specifying, for the set of containers, locations of the software images for individual containers of the set of containers and resources to be allocated to individual containers of the set of containers; receive a request to launch the software image in accordance with the task definition; determine a set of container instances in which to launch the software image in accordance with the task definition, wherein the set of container instances are determined according to a placement scheme, the placement scheme depending at least in part on the resources to be allocated to the individual containers of the set of containers and amounts of available resources within individual container instances of the set of container instances; and launch the software image as one or more running software containers in the set of container instances in accordance with the task definition. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
Specification