Jump to section

Découvrir les bases de Kubernetes

Copier l'URL

Les conteneurs permettent aux développeurs de se concentrer sur leurs applications, et à l'équipe d'exploitation de se consacrer à l'infrastructure. L'orchestration des conteneurs correspond à la façon dont vous gérez ces déploiements au sein d'une entreprise.

Kubernetes est une plateforme d'orchestration de conteneurs Open Source qui automatise de nombreux processus manuels associés au déploiement, à la gestion et à la mise à l'échelle des applications conteneurisées.

Kubernetes vous aide à distribuer et à gérer des applications à grande échelle, qu'elles soient d'ancienne génération, conteneurisées ou cloud-native, ainsi que celles qui sont transformées en microservices dans différents environnements, y compris dans les clouds privés et les principaux clouds publics de fournisseurs tels que Amazon Web Services (AWS), Google Cloud, IBM Cloud et Microsoft Azure.

La technologie Kubernetes vous offre une plateforme réservée à la planification et à l'exécution de conteneurs sur des clusters de machines physiques ou virtuelles. Une architecture Kubernetes permet de diviser un cluster en composants, qui fonctionnent ensemble pour maintenir le cluster dans un état défini.

Un cluster Kubernetes est un ensemble de machines (les nœuds) qui permettent d'exécuter des applications conteneurisées. Un cluster Kubernetes comprend deux principaux composants : le plan de contrôle et les machines de calcul ou nœuds. Chaque nœud est son propre environnement Linux®. Il peut s'agir d'une machine physique ou virtuelle. Chaque nœud exécute des pods, constitués de conteneurs.

L'API Kubernetes est la partie front-end du panneau de contrôle Kubernetes. C'est le moyen d'interaction entre les utilisateurs et le cluster Kubernetes. Le serveur d'API détermine si une requête est valide ou non et la traite, le cas échéant.

L'API Kubernetes est l'interface utilisée pour gérer, créer et configurer les clusters Kubernetes. C'est le moyen de communication entre les utilisateurs, les composants externes et certaines parties de votre cluster.

Ce bref tutoriel sur Kubernetes vous montre comment créer un cluster et déployer une application.

Nœuds :
Machines qui exécutent les tâches qui leur sont assignées par le plan de contrôle.

Pod :
Un ou plusieurs conteneurs déployés sur un seul nœud. Le pod est l'objet Kubernetes le plus petit et le plus simple.

Service :
Méthode qui permet d'exposer une application exécutée sur un ensemble de pods en tant que service réseau. Le service dissocie la définition des tâches des pods.

kubectl :
Interface en ligne de commande dans laquelle vous pouvez gérer votre cluster Kubernetes. En savoir plus sur les commandes de base kubectl et Helm pour débutants

kubelet :
Minuscule application située au sein de chaque nœud qui communique avec le plan de contrôle. Le kubelet s'assure que les conteneurs sont exécutés dans un pod.

Si vous êtes prêt à faire vos premiers pas avec Kubernetes, Minikube est un outil Open Source qui vous permet de mettre en place un cluster Kubernetes local afin que vous puissiez essayer Kubernetes depuis un ordinateur portable.

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.

Les contrôleurs gèrent l'état des objets Kubernetes de façon active et apportent des modifications de sorte que l'état actuel du cluster corresponde à l'état souhaité.

Les développeurs ou administrateurs système spécifient l'état défini à l'aide des fichiers YAML ou JSON qu'ils soumettent à l'API Kubernetes. Kubernetes utilise un contrôleur pour comparer le nouvel état défini et l'état réel du cluster.

L'état souhaité d'un cluster Kubernetes détermine les applications ou autres charges de travail à exécuter, ainsi que les images de conteneurs à utiliser, les ressources qui leur sont allouées et d'autres informations de configuration.

« etcd » est une base de données clé-valeur qui comprend les données de configuration et les informations sur l'état du cluster. Distribuée et résistante aux pannes, la base de données etcd constitue la référence unique concernant votre cluster.

Kubernetes gère ensuite automatiquement votre cluster pour qu'il corresponde à l'état souhaité. Pour cela, les contrôleurs envoient en général des messages au serveur d'API, qui entraînent les modifications nécessaires. Certaines ressources de Kubernetes ont des contrôleurs intégrés.

Pour illustrer la manière dont Kubernetes gère l'état souhaité, supposons que vous cherchiez à déployer une application avec un état souhaité de 3, ce qui signifie que trois réplicas de l'application doivent être exécutés.

Si l'un de ces conteneurs tombe en panne, l'ensemble de réplicas de Kubernetes détecte que seuls deux réplicas sont exécutés et en ajoute donc un troisième pour atteindre l'état souhaité.

Les ensembles de réplicas sont un type de contrôleur qui veille à ce qu'un nombre spécifique de pods s'exécutent.

Les déploiements Kubernetes sont la méthode recommandée pour gérer les ensembles de réplicas. Ils fournissent des mises à jour déclaratives aux pods afin que vous n'ayez pas à les gérer vous-même.

La fonctionnalité de mise à l'échelle automatique de Kubernetes permet de mettre à l'échelle les services en fonction de la demande des utilisateurs. Lorsque vous définissez l'état souhaité d'une application ou d'un service, vous pouvez également demander au contrôleur de mettre à disposition des pods supplémentaires si la demande augmente.

Par exemple, pendant une période de forte activité, l'état souhaité de votre application pourrait passer à 10 réplicas, au lieu des trois habituels.

Un déploiement Kubernetes est un objet de type ressource dans Kubernetes, qui fournit des mises à jour déclaratives pour des applications.

Un déploiement vous permet de décrire le cycle de vie d'une application, en spécifiant par exemple les images à utiliser, le nombre de pods à exécuter et la façon dont ils doivent être mis à jour.

La mise à jour manuelle des applications conteneurisées est chronophage et fastidieuse. Un déploiement Kubernetes permet d'automatiser le processus et de le rendre reproductible.

Les déploiements sont entièrement gérés par le back-end Kubernetes et tout le processus de mise à jour est effectué côté serveur, sans intervention de la part du client.

Un objet Kubernetes de type déploiement vous permet de :

  • déployer un ensemble de réplicas ou un pod ;
  • mettre à jour des pods ou des ensembles de réplicas ;
  • revenir aux versions précédentes des déploiements ;
  • mettre à l'échelle un déploiement ;
  • mettre en pause ou poursuivre un déploiement.

Les modèles Kubernetes sont des modèles de conception pour les applications et services basés sur des conteneurs.

Avec Kubernetes, les développeurs peuvent créer des applications cloud-native à l'aide d'une bibliothèque d'interfaces de programmation d'application (API) ainsi que d'outils de création d'applications.

Kubernetes ne fournit cependant pas aux développeurs et aux architectes les directives pour utiliser ces éléments afin de créer un système complet qui répond aux besoins et objectifs métier.

Les modèles sont une manière de réutiliser les architectures. Au lieu de créer vous-même l'architecture de bout en bout, vous pouvez utiliser des modèles Kubernetes existants et ainsi vous assurer que tous les éléments fonctionneront comme prévu.

Les modèles sont les outils dont les développeurs Kubernetes ont besoin. Ils leur indiquent comment créer un système.

Un opérateur Kubernetes est une méthode qui permet de mettre en paquet, déployer et gérer une application Kubernetes. Une application Kubernetes est déployée sur Kubernetes et gérée à l'aide de l'API Kubernetes et des outils de kubectl.

Un opérateur Kubernetes est un contrôleur spécifique à une application qui permet d'étendre les fonctionnalités de l'API Kubernetes afin de créer, configurer et gérer des instances d'applications complexes au nom d'un utilisateur Kubernetes.

Découvrez comment créer un opérateur Kubernetes en 10 minutes en utilisant le SDK de l'opérateur.

L'opérateur Kubernetes s'appuie sur les concepts de base de ressource et contrôleur Kubernetes, mais inclut des connaissances spécifiques à une application ou un domaine pour automatiser le cycle de vie complet du logiciel dont il assure la gestion.

Pour en savoir plus sur les opérateurs Kubernetes et sur leur importance, consultez l'article How to explain Kubernetes Operators in plain English.

Grâce aux opérateurs, vous pouvez rédiger du code pour automatiser une tâche, au-delà des fonctions d'automatisation de base fournies dans Kubernetes. Les opérateurs ont été développés pour intégrer les pratiques d'ingénierie de la fiabilité des sites (SRE) à Kubernetes, pour les équipes qui suivent une approche DevOps ou SRE.

Apprenez-en plus sur le fonctionnement des opérateurs Kubernetes, à travers des exemples concrets, ainsi que sur la façon de les créer avec Operator Framework et le kit de développement logiciel.

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

Cette série de courtes vidéos et de démonstrations détaillées à la demande vous fait découvrir les conteneurs Linux et la technologie d'orchestration des conteneurs à l'aide de Docker, Kubernetes et Red Hat® OpenShift® Container Platform.

 

Administration de Red Hat OpenShift

Ce cours vous apprend à installer et administrer la solution Red Hat OpenShift Container Platform. Sur la base de travaux pratiques, vous apprendrez à installer, configurer et gérer des clusters OpenShift ainsi qu'à déployer des applications de test pour mieux comprendre comment les développeurs utiliseront la plateforme.

Ce cours est une introduction destinée aux développeurs qui couvre la création, le déploiement et la mise à l'échelle des applications ainsi que la résolution des problèmes avec Red Hat OpenShift. Avec l'adoption croissante d'OpenShift et de Kubernetes, les développeurs doivent apprendre à maîtriser les plateformes d'applications conteneurisées pour développer, créer et déployer des applications.

Red Hat OpenShift est une plateforme Kubernetes conçue pour les entreprises. Elle inclut de nombreuses technologies supplémentaires qui font de Kubernetes un outil puissant et viable pour les entreprises, notamment : les registres, la mise en réseau, la télémétrie, la sécurité, l'automatisation et les services.

Avec Red Hat OpenShift, les développeurs peuvent créer des applications conteneurisées, les héberger et les déployer dans le cloud tout en bénéficiant d'une évolutivité, d'un contrôle et d'une orchestration d'une efficacité telle que vos idées pourront vite devenir réalité.

Grâce à la version d'évaluation gratuite valable 60 jours, vous pouvez tester la plateforme Red Hat OpenShift et automatiser l'exploitation de vos conteneurs.

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.

En savoir plus sur les conteneurs

Produits

Une plateforme d'applications d'entreprise comprenant un ensemble unifié de services testés conçus pour distribuer des applications sur votre choix d'infrastructure.

Ressources

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