Operating hundreds of thousands of containers across a system can become unmanageable and calls for an orchestration management solution.
That’s where container orchestration comes in, allowing companies to manage large volumes throughout their lifestyle, providing:
- Provisioning
- Redundancy
- Health monitoring
- Resource allocation
- Scaling and load balancing
- Moving between physical hosts
While other container orchestration platforms (for example, Apache Mesos, Nomad, Docker Swarm) exist, Kubernetes has become the industry standard.
Kubernetes architecture consists of running clusters that allow containers to run across multiple machines and environments. Each cluster typically consists of worker nodes, which run the containerized applications, and control plan nodes, which control the cluster. The control plane acts as the orchestrator of the Kubernetes cluster. It includes several components: the API server (manages all interactions with Kubernetes), the control manager (handles all control processes), the cloud controller manager (the interface with the cloud provider’s API), and so forth. Worker nodes run containers using container runtimes like Docker. Pods, the smallest deployable units in a cluster, hold one or more app containers and share resources, such as storage and networking information.
Kubernetes enables developers and operators to declare the desired state of their overall container environment through YAML files. Then, Kubernetes does all the processing work of establishing and maintaining that state, with activities that include deploying a specified number of instances of a given application or workload, rebooting that application if it fails, load balancing, autoscaling, zero downtime deployments and more. Container orchestration with Kubernetes is also crucial to continuous integration and continuous delivery (CI/CD) or the DevOps pipeline—which would be impossible without automation.
In 2015, Google donated Kubernetes to the Cloud Native Computing Foundation (CNCF)8, the open-source, vendor-neutral hub of cloud-native computing operated under the auspices of the Linux Foundation. Since then, Kubernetes has become the most widely used container orchestration tool for running container-based workloads worldwide. In a CNCF report9, Kubernetes is the second largest open-source project in the world (after Linux) and the primary container orchestration tool for 71% of Fortune 100 companies.