This text has been translated from Google Translate.
Kubernetes is an open source software container orchestrator. As its name suggests, it is designed to orchestrate architectures of cluster(s) or cluster(s) of software containers in an extremely agile way, giving the possibility of managing the allocation of the underlying machine resources on the fly. .
Kubernetes is developed by Google and is the rewrite in Go of Borg, a homemade clustering system used by the American giant for years. All of its services rely on clusters of hundreds of Borg-driven containers. Via this brick, Google stops and restarts no less than 2 billion containers each week.
Kubernetes makes it possible to escape from a single cloud by opening up the possibility of replicating and orchestrating applications regardless of the platform or the cloud provider. Kubernetes can support clusters of up to 50,000 machines.
Software containers managed by Kubernetes are based on Docker technology, which is also portable from one cloud to another. The idea is to replicate the components of the application to better manage the machine resources necessary for each in order to collect the traffic.
Kubernetes deploys clusters of Docker pods (or Docker nodes). After being installed on a master server, Kubernetes will be able to coordinate the components of the application to be managed (front-end servers, application layer, database) by distributing them over several pods.
Dedicated to a given process, a micro-service for example, a pod is the smallest unit of a Kubernetes cluster. A pod can carry one or more tightly coupled containers. Kubernetes' "Deployment" feature monitors the health of the pod and restarts it when needed. We use the kubectl create command to create a Deployment orchestrating a pod.