« Kubernetes - Container orchestration » : différence entre les versions

De Marijan Stajic | Wiki
Aller à la navigation Aller à la recherche
m (Compentes add)
m (→‎Components : Final update)
Ligne 18 : Ligne 18 :
Kubernetes is '''composed of multiple components''' that are '''automatically installed''' when you set up it on your system:
Kubernetes is '''composed of multiple components''' that are '''automatically installed''' when you set up it on your system:


*[[Fichier:Kubernetes api-server.png]] '''API Server :''' This acts as the '''front end''' for Kubernetes, '''managing''' and '''interacting''' with '''Nodes''' in the cluster ;
* '''API Server :''' This acts as the '''front end''' for Kubernetes, '''managing''' and '''interacting''' with '''Nodes''' in the cluster ;
*[[Fichier:Kubernetes etcd.png]] '''etcd :''' It's a '''key-value store''' that '''holds all the information''' about the '''Nodes''' and '''Masters''' in the cluster ;
* '''Scheduler :''' It is '''responsible''' for '''distributing''' the '''workload''' and '''containers''' across the multiple '''Nodes''' in the cluster. When a new container is created, it automatically assigns it to a Node.
*[[Fichier:Kubernetes api-server.png]] '''Scheduler :''' It is '''responsible''' for '''distributing''' the '''workload''' and '''containers''' across the multiple '''Nodes''' in the cluster. When a new container is created, it automatically assigns it to a Node.
* '''Controller :''' It is the '''brain of this orchestration'''. Indeed, it '''notices''' and '''responds''' when '''Nodes''' or '''containers''' '''go down'''. It makes '''decisions''' about when '''new containers''' need to be '''brought up'''.
*[[Fichier:Kubernetes api-server.png]] Controller : It is the '''brain of this orchestration'''. Indeed, it '''notices''' and '''responds''' when '''Nodes''' or '''containers''' '''go down'''. It makes '''decisions''' about when '''new containers''' need to be '''brought up'''.
* '''etcd :''' It's a '''key-value store''' that '''holds all the information''' about the '''Nodes''' and '''Masters''' in the cluster ;
* '''Container Runtime :''' This is the '''software used to run containers''' (Docker in our case).
* '''Kubelet :''' It's the '''agent running on each Node''' in the cluster. It ensures that '''the containers are running as expected''' on the Node.

Version du 29 mai 2024 à 15:12

Introduction

Kubernetes (or K8s) is an open-source system used for container orchestration. Indeed, it complements container applications such as Docker. It permits the consistent deployment and management of containers. Kubernetes was developed by Google and later donated to the Cloud Native Computing Foundation. The first version was released in July 2015.

Architecture

The first thing we find in the architecture of container orchestration is the Node (prevously named Minions). A Node can be a physical or virtual machine where containers are run by Kubernetes.

You should have multiple Nodes to use Kubernetes properly. Indeed, if one Node fails, the others are still available to take over and keep the application running. This setup is called a Cluster.

If a Node in the Cluster fails, a Master Node should be set up to move the workload. The Master Node watches over the Nodes in the Cluster and is responsible for container orchestration.


Kubernetes Architecture.png

Components

Kubernetes is composed of multiple components that are automatically installed when you set up it on your system:

  • API Server : This acts as the front end for Kubernetes, managing and interacting with Nodes in the cluster ;
  • Scheduler : It is responsible for distributing the workload and containers across the multiple Nodes in the cluster. When a new container is created, it automatically assigns it to a Node.
  • Controller : It is the brain of this orchestration. Indeed, it notices and responds when Nodes or containers go down. It makes decisions about when new containers need to be brought up.
  • etcd : It's a key-value store that holds all the information about the Nodes and Masters in the cluster ;
  • Container Runtime : This is the software used to run containers (Docker in our case).
  • Kubelet : It's the agent running on each Node in the cluster. It ensures that the containers are running as expected on the Node.