Jump to section

Un pod Kubernetes, qu'est-ce que c'est ?

Copier l'URL

Un pod Kubernetes est un ensemble composé d'un ou plusieurs conteneurs Linux®. Il s'agit de la plus petite unité d'une application Kubernetes. Un pod peut contenir plusieurs conteneurs étroitement couplés (cas d'utilisation avancé) ou un conteneur unique (cas d'utilisation plus courant). Les conteneurs sont regroupés dans des pods Kubernetes afin d'optimiser le partage des ressources, comme expliqué ci-après.

Au sein du système Kubernetes, les conteneurs d'un même pod partagent les mêmes ressources de calcul. Ces ressources de calcul sont regroupées dans Kubernetes pour former des clusters, afin d'obtenir un système plus puissant et distribué de manière intelligente pour l'exécution des applications. Si les éléments de Kubernetes, que ce soit les conteneurs, les pods, les nœuds et les clusters, peuvent être difficiles à appréhender de prime abord, voici des pistes pour vous aider à mesurer les avantages des pods Kubernetes :

Unités matérielles

Nœud : plus petite unité d'un matériel informatique dans Kubernetes, considérée comme une machine individuelle.

Cluster : ensemble de nœuds regroupés pour offrir un partage et un équilibrage intelligents des ressources.

Unités logicielles

Conteneur Linux : ensemble composé d'un ou plusieurs processus, qui inclut tous les fichiers nécessaires à exécuter et permet de les transférer d'une machine à l'autre.

Pod Kubernetes : ensemble composé d'un ou plusieurs conteneurs Linux regroupés pour maximiser les avantages du partage des ressources via la gestion des clusters.

En résumé, le matériel est représenté sous la forme d'un nœud dans Kubernetes. Un certain nombre de ces nœuds sont rassemblés dans des clusters, afin de distribuer la puissance de calcul selon les besoins. Sur ces mêmes clusters sont exécutés des pods, qui veillent à ce que tous les conteneurs étroitement couplés qu'ils contiennent soient exécutés ensemble sur le même cluster.

Du fait de la relation qui lie les pods aux clusters, Kubernetes exécute les pods, et non directement les conteneurs, pour s'assurer que chaque conteneur partage les mêmes ressources et le même réseau local. En regroupant ainsi les conteneurs, ils peuvent communiquer entre eux comme s'ils partageaient le même matériel physique, tout en restant plus ou moins isolés.

Cette organisation des conteneurs en pods constitue la base de l'une des fonctions réputées de Kubernetes : la réplication. Lorsque les conteneurs sont organisés en pods, Kubernetes peut utiliser les contrôleurs de réplication pour mettre à l'échelle une application horizontalement selon les besoins. Cela signifie que si un pod est surchargé, Kubernetes peut le répliquer de manière automatique pour le déployer sur le cluster. En plus d'assurer le bon fonctionnement du système en cas de forte charge, les pods Kubernetes sont souvent répliqués en continu pour le protéger des défaillances.

L'un des principaux avantages du système Kubernetes est de tirer le meilleur parti des éléments réutilisables, comme les pods. Il faut parfois des années d'essais et d'erreurs pour découvrir la meilleure utilisation de Kubernetes dans des environnements de production. Or, la majorité des entreprises ne peuvent pas attendre, car elles doivent déployer rapidement leurs applications cloud-native.

Grâce aux normes ouvertes sur lesquelles repose le système Kubernetes et aux tâtonnements de certains précurseurs, des modèles de réussite (et d'échec) ont pu se dégager. Ces modèles de conceptions reproductibles permettent à de nombreuses entreprises d'accélérer l'adoption précoce de Kubernetes.

Dans le livre numérique Kubernetes Patterns: Reusable Elements for Designing Cloud-Native Applications publié par O'Reilly, les auteurs Bilgin Ibryam et Roland Huß fournissent une présentation détaillée des éléments, modèles, principes et pratiques réutilisables courants pour concevoir et mettre en œuvre des applications cloud-native sur Kubernetes.

Pour aller plus loin

ARTICLE

Conteneurs et machines virtuelles

Les conteneurs Linux et les machines virtuelles sont des environnements informatiques en paquets qui associent divers composants et les isolent du reste du système.

ARTICLE

L'orchestration des conteneurs, qu'est-ce que c'est ?

L'orchestration des conteneurs permet d'automatiser le déploiement, la gestion, la mise à l'échelle et la mise en réseau des conteneurs.

ARTICLE

Un conteneur Linux, qu'est-ce que c'est ?

Un conteneur Linux est un ensemble de processus isolés du système. Un conteneur s'exécute à partir d'une image distincte qui fournit tous les fichiers nécessaires à la prise en charge des processus qu'il contient.

DevNation: The Show

Rejoignez la DevNation un jeudi sur deux pour une heure de chat en direct sur tout ce qui concerne Kubernetes, Java et Linux.

En savoir plus sur les conteneurs

Produits

Red Hat OpenShift

Plateforme de conteneurs Kubernetes pour les entreprises qui automatise l'exploitation de toute la pile pour la gestion des déploiements multicloud, de clouds hybrides et d'edge computing.

Ressources

Liste de contrôle

Développement d'applications en conteneurs : 5 thèmes à aborder avec votre équipe

Fiche technique

Red Hat Advanced Cluster Management for Kubernetes

Fiche technique

Red Hat OpenShift : une technologie de conteneurs pour le cloud hybride

Formations

Cours gratuit

Présentation technique de l'exécution de conteneurs avec Red Hat

Cours gratuit

Présentation technique du déploiement d'applications conteneurisées

Cours gratuit

Développement d'applications cloud-native avec des architectures de microservices

Illustration - mail

Ce type de contenu vous intéresse ?

Inscrivez-vous à notre newsletter Red Hat Shares.