What is Kubernetes?

Kubernetes is a free and open source software (FOSS), under the charter of the Cloud Native Computing Foundation (CNCF). Kubernetes is actively developed and maintained, with a number of high-profile companies.

Kubernetes is a container orchestration platform that was originally designed by Google to help scale containerized applications in the cloud. Kubernetes allows you to create highly available clusters of computers that are connected together to work as a single unit.

Kubernetes abstractions provide a way to deploy containerized applications to a cluster without tying them specifically to an individual system. Kubernetes manages the lifecycle of pods (composed of containers), by creating and destroying them depending on the needs of the application, as well as providing several other support services.

To take advantage of this new model of deployment, your applications need to be created in a way that allows them not to be dependant on an individual hosts system (i.e. they need to be containerized). Containerized applications provide more flexibility and availability than previous deployment models/architectures. In the old models, applications were installed directly onto specific machines as packages and deeply integrated into the host operating system.

Using Kubernetes allows the automated distribution and scheduling of your application containers across a cluster in a very efficient way. A Kubernetes cluster consists of two main types of resources, each running set of Kubernetes agent processes and communicating with one another:

    • The Master node(s) is a collection of processes known as the ‘control plane’ that helps manage and maintain the desired state of the cluster.
    • The Worker node(s) is responsible for running the containers in pods that form the applications and services.


=====


More information:

Kubernetes Architecture Overview (Attribution)