Skip to main content

1_Theorie

Théorie

Rappel

Kubernetes est une plateforme open-source de gestion d'applications conteneurisées qui a été créé par Google. Google décida par la suite de le donner à Cloud Native Computing Foundation (CNCF). Il automatise le déploiement de conteneur, la mise à l'échelle et la gestion des applications en conteneurs. Kubernetes regroupe les conteneurs (qui sont géré par des pods) en unités logiques pour une gestion plus facile et offre des outils pour l'équilibrage de charge, la mise à jour progressive et le retour en arrière.

Avantage :

  • Deploiement rapide
  • Absortion du changement
  • Récupération rapide
  • Masque la complexité de l'infrastructure

Les différentes objets dans kubernetes :

  • Pods
  • Controleur
  • Service
  • Stokage

Ports

Control plane

Protocol Direction Port Range Purpose Used By
TCP Inbound 6443 Kubernetes API server All
TCP Inbound 2379-2380 etcd server client API kube-apiserver, etcd
TCP Inbound 10250 Kubelet API Self, Control plane
TCP Inbound 10259 kube-scheduler Self
TCP Inbound 10257 kube-controller-manager Self

Worker nodes

Protocol Direction Port Range Purpose Used By
TCP Inbound 10250 Kubelet API Self, Control plane
TCP Inbound 10256 kube-proxy Self, Load balancers
TCP Inbound 30000-32767 NodePort Services† All

Les méthodes

Impérative : Décrit comment accomplir une tâche en suivant une séquence d'instructions. En gros nous utilisons le terminal pour executer les commandes

  • Exemple : Utiliser kubectl pour créer des pods ou des services avec des commandes directes.

Déclarative : Décrit les actions à accomplir en définissant l'état final désiré. Dans un fichier .yaml

  • Exemple : Utiliser des fichiers YAML pour définir l'état de l'application.

Les opérations sur les pods

Définition Un opérateur dans Kubernetes est une méthode pour automatiser la gestion de tâches spécifiques à des applications ou des services.

Pour le Control Plane Nodes :

etcd etcd est un magasin de données distribuées. Il stocke toutes les données de l'état de cluster Kubernetes. Il garde une trace de tout ce qui se passe dans le cluster, y compris les configurations et les états des pods, des services et bien plus encore. Si etcd tombe en panne, Kubernetes perd sa capacité à maintenir l'état de ses objets.

Kubernetes Scheduler C'est un composant de contrôle responsable de l'attribution des pods aux nœuds. Une fois qu'un pod est créé, le scheduler lui assigne un nœud sur lequel il sera exécuté en fonction de diverses ressources disponibles. Il veille à ce que les pods soient placés intelligemment sur les nœuds en fonction des ressources, évitant ainsi le surpeuplement d'un nœud.

Kubernetes Controller Manager C'est un processus qui exécute les contrôleurs de Kubernetes. Chaque contrôleur surveille l'état du cluster via l'API Server et s'assure que l'état actuel du cluster correspond à l'état souhaité. Par exemple, si un pod tombe, le contrôleur Replication va créer un nouveau pod pour le remplacer. Ils automatisent des tâches cruciales telles que le maintien du nombre de pods approprié pour un déploiement, la gestion des nœuds, la maintenance des comptes de service, etc

Kubernetes API Server C'est un composant central à travers lequel les composants de Kubernetes interagissent ensemble au sein du cluster. Il valide et configure les données de l'API objets qui incluent les pods, services, les contrôleurs de réplication. Il sert de passerelle de communication entre les différents composants. Il permet une communication cohérente et sécurisée entre les différents composants ainsi que l'accès des utilisateurs et des administrateurs au cluster.

Pour les Nodes :

Kubelet Kubelet est l'agent qui fonctionne sur chaque nœud du cluster Kubernetes. Il s'assure que les conteneurs de chaque pod sont en cours d'exécution et en bonne santé. Kubelet prend les instructions du Kubernetes API Server et les exécute. Il permet de maintenir l'état désiré des pods en surveillant constamment les conteneurs et rapportate leur état au Kubernetes API Server.

Kube-proxy Kube-proxy est un composant de réseau qui fonctionne également sur chaque nœud. Il maintient les règles de réseau sur les nœuds. Il permet la communication entre les pods et les services en gérant les règles de redirection et l'équilibrage de charge. Il garantit que le trafic réseau est routé correctement et permet une communication fluide entre les différents services du cluster

Container Runtime Le runtime est le logiciel qui exécute les conteneurs comme docker mais ici nous utilisons containerd. Il télécharge les images de conteneurs, les exécute, et gère leur cycle de vie. C'est au cœur de l'exécution des applications conteneurisées.