Kubernetes - The Container Orchestrator Framework

A container orchestrator framework can create, manage, configure thousands of containers on a set of distributed servers while preserving the connectivity and reachability of these containers. Multiple tools emerged within the landscape in the past years to provide these capabilities, including Docker Swarm, Apache Mesos, CoreOS Fleet, and many more.

image.png

However, Kubernetes took the lead in defining how to run containerized workloads on a distributed amount of machines.

Kubernetes is widely adopted in the industry today, with most organizations using it in production. Kubernetes currently is a graduated CNCF project, which highlights its maturity and reported success from end-user companies.

Kubernetes provides :

  • Portability: It is a highly portable tool. This is due to its open-source nature and vendor agnosticism.

  • Scalability: Kubernetes has in-build resources, such as HPA (Horizontal Pod Autoscaler), to determine the required amount of replicas for a service. Elasticity is a core feature that is highly automated within Kubernetes.

  • Resilience: Kubernetes uses functionalities like ReplicaSet, readiness, and liveness probes to handle most of the container failures, enabling powerful self-healing capability.

  • Service discovery: Kubernetes provide cluster-level DNS (or Domain Name System), which simplifies the accessibility of workloads within the cluster.

  • Extensibility: Kubernetes is a highly extensible mechanism that uses the building-block principle.

  • Operational cost of the container: Operational cost refers to the efficiency of resource consumption within a Kubernetes cluster, such as CPU and memory. Kubernetes has a powerful scheduling mechanism that places an application on the node with sufficient resources to ensure the successful execution of the service. As a result, most of the available infrastructure resources are allocated on-demand.