Architecture Kubernetes : tout ce que vous devez savoir en 2022

Publié: 2021-01-05

Table des matières

À propos de Kubernetes

Kubernetes est une plate-forme open source avec des fonctionnalités telles que la maximisation des ressources, le processus de déploiement et la mise à jour automatiques, la mise à l'échelle automatique, l'autoréparation, les retours en arrière et les déploiements automatisés, l'équilibrage de charge des orchestrateurs de conteneurs et la découverte de services, le redémarrage automatique, le placement automatique, et auto-réplication, etc. Kubernetes n'est pas seulement un orchestrateur de conteneurs ; c'est aussi un système d'exploitation pour les applications basées sur le cloud.

C'est comme une plate-forme pour exécuter une application similaire à d'autres applications qui s'exécutent sous Windows, MacOS ou Linux avec une plus grande flexibilité. Il réduit la charge d'orchestration et permet aux développeurs de se concentrer entièrement sur les flux de travail centrés sur les conteneurs aux fins de l'opération en libre-service. Les développeurs bénéficient d'une automatisation de très haut niveau dans le déploiement et la gestion des applications. Il peut être intégré à n'importe quel environnement pour améliorer les capacités.

Lire : Salaire Kubernetes en Inde

Architecture Kubernetes

L'architecture de Kubernetes se compose de couches : des couches supérieures et inférieures. Dans cet individu, les machines physiques ou virtuelles sont regroupées dans un cluster. Un réseau partagé est utilisé pour la communication entre chaque serveur. Kubernetes a un maître (au moins) agissant comme un plan de contrôle, un système de stockage distribué. Les multiples nœuds de cluster sont également connus sous le nom de Kubelets.

  • Le maître de Kubernetes, le plan de contrôle, planifie les déploiements, expose l'API et gère l'ensemble du cluster Kubernetes.
  • Le nœud de cluster exécute un environnement d'exécution de conteneur, un agent pour communiquer avec le maître et d'autres composants de surveillance, la journalisation, etc.

L' architecture Kubernetes et les composants Kubernetes sont illustrés dans l'image ci-dessous.

La source

Jetons un coup d'œil aux composants Kubernetes .

Composants Kubernetes

Maître : Plan de contrôle Kubernetes

Le maître conserve les données de chaque objet dans Kubernetes. Comme il gère l'ensemble du cluster, il est donc appelé Master. Il contrôle les états des objets, maintient la correspondance entre l'état réel du système et l'état requis, répond aux changements, etc.

Il contient les trois composants importants suivants :

  • Serveur d' API Kube : serveur d'API Kubernetes
  • Kube- Scheduler : planification des pods dans les noeuds worker
  • Kube- Controller : gère la réplication des pods

S'il existe plusieurs nœuds maîtres, ces composants sont répliqués sur tous les nœuds maîtres.

L'orchestration du cycle de vie pour diverses applications qui incluent les mises à jour, la mise à l'échelle, etc. est effectuée par API Server. Il fonctionne comme une passerelle pour les clients qui ne sont pas dans le cluster. Le serveur API effectue l'authentification. Il agit également comme un intermédiaire pour les pods et les nœuds.

Le contrôleur effectue les tâches suivantes :

  • Exécution des boucles de contrôle principales
  • Faire des changements pour l'état de conduite vers l'état requis.
  • Surveillance de l'état du cluster

Il propose également des services de routage, de stockage, d'équilibrage de charge, des services réseau DNS, des instances de VM en s'intégrant dans des clouds publics. Les différents contrôleurs qui pilotent l'état pour l'autoscaling, les nœuds, les services et les pods, les espaces de noms.

La planification des conteneurs dans les nœuds est effectuée par Scheduler au sein du cluster ; en tenant compte de différentes limitations/garanties de ressources, ou de spécifications anti-affinité/affinité.

La taxonomie du plan de contrôle Kubernetes est illustrée ci-dessous :

La source

Nœuds de cluster : Kubelets

Les kubelets sont différentes machines responsables de l'exécution des conteneurs. Le maître s'occupe de la gestion des nœuds du cluster. Il est aussi appelé minion. Les nœuds du cluster sont considérés comme le contrôleur principal de Kubernetes. Il pilote Docker, la couche d'exécution des conteneurs.

Il contient les composants suivants :

  • Pod : groupe de conteneurs
  • Docker : technologie basée sur des conteneurs, espace utilisateur du système d'exploitation
  • Kubelet : agents de conteneur chargés de maintenir l'ensemble des pods.
  • Kube-proxy : achemine le trafic entrant dans un nœud à partir du service.

La taxonomie Kubernetes Cluster Node est illustrée ci-dessous :

La source

Modules et services

Les pods sont un concept important dans Kubernetes avec lequel les développeurs interagissent. Il représente le processus en cours. Il peut héberger des piles d'applications intégrées verticalement telles que les applications WordPress LAMP. Vous trouverez ci-dessous différents types de pod :

Type de capsule Fonctionnalité
Jeu de répliques Type de gousse simple

Assure le fonctionnement des pods fixes

Déploiement Une gestion déclarative des pods via ReplicaSet

Les mises à jour continues et les mécanismes de restauration sont inclus.

StatefulSet Gère les pods qui doivent persister
Ensemble de démons Garantit que chaque nœud exécute une instance de pod.

Gère les services de cluster tels que le transfert de journaux et la surveillance de l'intégrité.

CronJob et Job Exécute des tâches de courte durée en tant que planificateur

Un pod peut être composé d'un certain nombre de conteneurs et de volumes externes. La taxonomie des gousses est illustrée dans le diagramme ci-dessous :

La source

Les services effectuent le suivi des pods. Pour définir les associations de pod et de service, des sélecteurs ou des étiquettes sont utilisés à la place des attributions d'adresses IP. Cela simplifie l'ajout de pods au service et la publication de nouvelles versions. Voici les différents types de services :

type de service Fonctionnalité
ClusterIP Type par défaut ; Expose le service sur une IP interne et rend le service accessible
NodePort Permet aux développeurs de configurer leurs propres équilibreurs de charge
Équilibreur de charge Automatise leur configuration
NomExterne Couramment utilisé pour créer un service dans Kubernetes.

Le déploiement cloud type utilisé est le type LoadBalancer. Kubernetes prend en charge l'abstraction d'Ingress de haut niveau pour résoudre la complexité. Les utilisateurs peuvent afficher différents services au sein de la même adresse IP en utilisant les mêmes équilibreurs de charge.

Lire la suite : Openshift Vs Kubernetes : Différence entre Openshift et Kubernetes

Mise en réseau Kubernetes

CNI (Container Network Interface) est principalement utilisé pour masquer le réseau de base. Calico, une option entièrement routée, peut également être utilisée. Dans les deux options, la communication se fait sur un réseau de pods à l'échelle du cluster et contrôlée par Calico ou Flannel (fournisseur CNI). Les conteneurs peuvent communiquer au sein d'un pod sur l'hôte local sans aucune restriction. Le déplacement des sources externes vers les services ou des pods vers les services s'effectue via Kube-proxy.

Stockage persistant

Un répertoire contenant des données est appelé volumes dans Kubernetes. Les répertoires sont accessibles aux pods. Il existe de nombreux types de stockage dans Kubernetes. Les conteneurs du pod peuvent consommer n'importe quel espace de stockage. Les services de cloud public tels que NFS, Amazon Elastic Block Store, Iscsi, CephFS, etc. sont utilisés pour monter des fichiers et bloquer le stockage sur un pod. Les PV (PersistentVolumes) sont des objets à l'échelle du cluster qui sont liés aux ressources de stockage existantes.

Au sein d'un espace de noms, la demande de consommation de stockage est initiée par PersistentVolumeClaim. Les différents états de PV sont disponibles, liés, libérés et en échec. Les StorageClasses sont la couche d'abstraction. Il différencie la qualité de stockage sous-jacente et sépare diverses caractéristiques. Le pod peut demander dynamiquement un nouveau stockage à l'aide de StorageClasses et PersistentVolumeClaim.

La source

Services de découverte et de publication

Selon la version du cluster, Kubernetes dépend de Kube-DNS ou de CoreDNS pour découvrir les services. Ces services DNS intégrés créent, mettent à jour et suppriment des enregistrements DNS. Il aide les applications à cibler d'autres pods et services grâce à un schéma de nommage simple et cohérent.

Exemple ( Source )

Pour un service Kubernetes, l'enregistrement DNS peut être service.namespace.svc.cluster.local

Enregistrement DNS, un pod peut avoir : 10.32.0.125.namespace.pod.cluster.local

La source

Espaces de noms

Les clusters physiques contenant des clusters virtuels sont appelés espaces de noms. Il fournit un environnement virtuel distinct à plusieurs utilisateurs ainsi que des droits d'accès respectifs pour les objets Kubernetes.

Étiquettes

Les étiquettes sont utilisées pour différencier les ressources présentes dans un espace de noms unique. Les attributs sont définis par des paires clé ou valeur. Les étiquettes sont utilisées pour mapper les structures d'organisation sur les objets Kubernetes. Il peut décrire l'environnement, l'état de la version, le niveau d'application ou l'identification des clients. Il empêche la liaison physique des objets.

Remarques

Les annotations sont utilisées pour ajouter des bagages ou des métadonnées arbitraires non identifiés aux objets. Il est utilisé comme outil de configuration déclaratif.

A lire : Kubernetes Vs. Docker : principales différences à connaître

Obtenez des diplômes en génie logiciel des meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Conclusion

La technologie de Kubernetes se développe rapidement et constitue une solution rentable pour l'avenir. Il offre une grande stabilité aux applications.

Tous les concepts de base de l'architecture Kubernetes et des composants Kubernetes sont expliqués dans cet article.

Si vous souhaitez en savoir plus sur Kubernetes et le Big Data, consultez le programme Executive PG de upGrad & IIIT-B en développement de logiciels à pile complète, conçu pour les professionnels en activité et offrant plus de 500 heures de formation rigoureuse, plus de 9 projets et affectations, statut d'anciens élèves de l'IIIT-B, projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.

Préparez-vous à une carrière d'avenir

Postulez maintenant pour le programme Executive PG en développement Full Stack