La technologie des conteneurs permet de regrouper une application et tous les fichiers qui lui sont nécessaires dans un même environnement d'exécution. En tant qu'unité, le conteneur peut facilement être déplacé et exécuté sur un système d'exploitation et dans un contexte quelconques.
En informatique, un conteneur est utilisé pour bénéficier d'un espace d'exécution dédié à une application logicielle. Il peut se présenter sous la forme d'un type de données abstrait, d'une structure d'informations ou encore d'une classe.
Caisse de dimensions normalisées utilisée pour la manutention, le stockage ou le transport de matières ou de lots d'objets dont elle permet de simplifier l'emballage.
Un conteneur est un package isolé et léger qui permet d'exécuter une application sur le système d'exploitation hôte. Les conteneurs s'appuient sur le noyau du système d'exploitation hôte (qui peut être considéré comme la tuyauterie invisible du système d'exploitation), tel qu'illustré dans le diagramme ci-dessous.
Kubernetes est une plate-forme open-source extensible et portable pour la gestion de charges de travail (workloads) et de services conteneurisés. Elle favorise à la fois l'écriture de configuration déclarative (declarative configuration) et l'automatisation. C'est un large écosystème en rapide expansion.
Un conteneur Docker est un conteneur exécutable populaire léger et autonome, qui comprend tous les éléments nécessaires pour exécuter une application, notamment les bibliothèques, les outils système, le code et le runtime.
Docker est une plateforme de conteneurisation et d'exécution, tandis que Kubernetes est une plateforme permettant d'exécuter et de gérer des conteneurs à partir de nombreux systèmes d'exécution de conteneurs. Kubernetes prend en charge de nombreux environnements d'exécution de conteneurs, y compris Docker.
Avantages des conteneurs
Les conteneurs permettent de déployer, de corriger ou de faire évoluer les applications plus rapidement. Les conteneurs accélèrent les cycles de développement, de test et de production grâce à la méthodologie agile et DevOps.
L'utilisation de conteneurs permet d'isoler les logiciels et de les faire fonctionner de manière indépendante sur différents systèmes d'exploitation, matériels, réseaux et systèmes de stockage, avec différentes politiques de sécurité.
Présentation des conteneurs dans le Cloud :
Les conteneurs sont des unités de logiciel abstraites qui ont tout ce dont vous avez besoin pour gérer une charge de travail ou un processus. L'orchestration de conteneurs est la capacité à déployer et gérer plusieurs conteneurs dans l'infrastructure de Cloud privé et public.
L'élément principal du container est la plate forme qui va supporter la charge à transporter. Elle est constituée de traverses en acier entourées par un cadre et recouvertes par un plancher en bois.
La principale différence est que le conteneur fournit une virtualisation au niveau du système d'exploitation (virtualisation software) tandis que la machine virtuelle, quant à elle, fournit une virtualisation au niveau du matériel (virtualisation hardware).
La conteneurisation consiste à rassembler le code du logiciel et tous ses composants (bibliothèques, frameworks et autres dépendances) de manière à les isoler dans leur propre « conteneur ».
La délégation générale à la langue française et aux langues de France et l'Office québécois se la langue française recommandent l'usage de la forme conteneur à la place de l'anglicisme container.
Il en existe deux types : le “flat rack fixed end”, dont les parois d'extrémités sont fixes, et le “flat collapsible” dont les parois d'extrémités sont rabattables. Ce type de conteneur est destiné à l'empotage des marchandises de toutes sortes, pour autant qu'elles ne soient pas sensibles aux intempéries.
1956 : le 26 avril, Malcolm McLean charge sa marchandise à bord d'un pétrolier modifié pour l'occasion : 58 caisses faciles à décharger. Le « conteneur » est né ! Ce premier voyage donne le départ d'une fulgurante révolution pour le commerce mondial.
Le conteneur maritime est normalement réalisé en acier Corten, très résistant aux écarts de températures et à la corrosion. Ainsi au contact de l'air une couche auto-protectrice d'oxydes se forme sur le métal, de couleur rouille. Cette dernière qui lui donne une très bonne résistance dans le temps.
Docker permet de faciliter la coordination des comportements entre les conteneurs, et de les connecter entre eux pour créer des stacks d'applications. Pour simplifier le processus de développement et de test d'applications multi-conteneurs, Docker a créé Docker Compose.
Kubernetes fonctionne sur la base d'un état défini et d'un état réel. Les objets Kubernetes représentent l'état d'un cluster. Ils indiquent à Kubernetes à quoi vous voulez que la charge de travail ressemble. Une fois qu'un objet a été créé et défini, Kubernetes veille à ce qu'il soit toujours présent.
Un Déploiement Kubernetes vérifie l'état de santé de votre Pod et redémarre le conteneur du Pod s'il se termine. Les déploiements sont le moyen recommandé pour gérer la création et la mise à l'échelle des Pods. Utilisez la commande kubectl create pour créer un déploiement qui gère un Pod.