Sunday, May 24, 2020

Container Orchestration

Container orchestration is all about managing the lifecycles of containers, especially in large, dynamic environments. 

Software teams use container orchestration to control and automate many tasks:
  >Provisioning and deployment of containers
  >Redundancy and availability of containers
  >Scaling up or removing containers to spread application load evenly across host infrastructure
  >Movement of containers from one host to another if there is a shortage of resources in a host, or if a   host dies
 >Allocation of resources between containers
 >External exposure of services running in a container with the outside world
 >Load balancing of service discovery between containers
 >Health monitoring of containers and hosts
 >Configuration of an application in relation to the containers running it
 
How does container orchestration work?

When you use a container orchestration tool, like Kubernetes or Docker Swarm (more on these shortly), you typically describe the configuration of your application in a YAML or JSON file, depending on the orchestration tool. These configurations files (for example, docker-compose.yml) are where you tell the orchestration tool where to gather container images (for example, from Docker Hub), how to establish networking between containers, how to mount storage volumes, and where to store logs for that container. 

Containers are deployed onto hosts, usually in replicated groups. When it’s time to deploy a new container into a cluster, the container orchestration tool schedules the deployment and looks for the most appropriate host to place the container based on predefined constraints (for example, CPU or memory availability). You can even place containers according to labels or metadata, or according to their proximity in relation to other hosts—all kinds of constraints can be used.

Once the container is running on the host, the orchestration tool manages its lifecycle according to the specifications you laid out in the container’s definition file (for example, its Dockerfile).

The beauty of container orchestration tools is that you can use them in any environment in which you can run containers. And containers are supported in just about any kind of environment these days, from traditional on-premise servers to public cloud instances running in Amazon Web Services (AWS), Google Cloud Platform (GCP), or Microsoft Azure.

No comments:

Post a Comment

ES12 new Features