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

De Marijan Stajic | Wiki
Aller à la navigation Aller à la recherche
m (→‎Components : Final update)
m (→‎Architecture : Gras)
Ligne 5 : Ligne 5 :
== Architecture ==
== 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.
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'''.
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.
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.

Version du 29 mai 2024 à 15:15

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.