Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Configuration et Lancement du Déploiement Kubernetes | CI/CD et Automatisation
Introduction à DevOps

bookConfiguration et Lancement du Déploiement Kubernetes

Maintenant que votre application fonctionne parfaitement dans des conteneurs, le prochain défi consiste à orchestrer et gérer ces conteneurs à grande échelle. C'est ici qu'intervient Kubernetes.

Pour commencer, vous allez définir l'état souhaité de votre application à l'aide de fichiers YAML. Un fichier décrira un Deployment, qui gère les mises à jour et la montée en charge, tandis qu'un autre définira un Service, qui expose votre application au réseau et la rend accessible aux utilisateurs.

Note
Approfondir

YAML (YAML Ain't Markup Language) est un format lisible par l'humain pour les fichiers de configuration. Il est souvent utilisé pour décrire l'infrastructure, automatiser des processus et stocker les paramètres d'application.

Un Deployment garantit que le nombre souhaité d'instances de l'application (Pods) est toujours en cours d'exécution et facilite le déploiement de mises à jour ou le retour à des versions précédentes. Un Service expose ces conteneurs au réseau et répartit le trafic entrant entre eux.

Exécution de Minikube

Note
Définition

Minikube est un outil léger permettant d’exécuter un cluster Kubernetes localement sur votre ordinateur. Il crée un environnement virtuel pour tester et explorer Kubernetes sans recourir à des services cloud.

Après avoir installé Minikube et l’avoir ajouté au PATH de votre système, ouvrez PowerShell (ou le terminal de votre choix) et exécutez :

Cette commande vérifie si Minikube est disponible et affiche la version installée.

Une fois que vous avez confirmé que Minikube est installé, démarrez votre cluster Kubernetes local avec :

Cette commande crée et lance un cluster Kubernetes local sur votre machine. Elle télécharge les composants nécessaires et démarre le plan de contrôle ainsi que les nœuds de travail.

Déploiement : Mise en production de l’application

Commencez par créer le fichier deployment.yaml. Un Deployment dans Kubernetes garantit qu’un nombre spécifique de Pods (instances de l’application) sont toujours en cours d’exécution et peuvent être mis à jour ou restaurés sans interruption de service.

deployment.yaml

deployment.yaml

copy

Dans ce manifeste, le paramètre replicas spécifie combien d’instances de Pod doivent fonctionner simultanément — dans ce cas, deux. Pour savoir quels Pods gérer, le Deployment utilise une combinaison de selector et de labels : le selector agit comme un filtre pour trouver les Pods avec un label spécifique, et le modèle de Pod définit ce label. Lorsque les labels correspondent, le Deployment considère ces Pods comme les siens et s’occupe de maintenir leur nombre, de les mettre à jour et de les redémarrer si nécessaire.

Tous les Pods fonctionnent sur le port 3000. Ils peuvent tous utiliser le même port car chaque Pod opère dans son propre espace réseau isolé, il n’y a donc aucun conflit entre eux.

Service : Accès réseau à l’application

Une fois le Deployment en place, un Service est nécessaire pour fournir un accès réseau et l’équilibrage de charge entre les Pods. Créer le fichier service.yaml :

service.yaml

service.yaml

copy

Ce manifeste définit un Service nommé my-app-service qui dirige le trafic vers les Pods portant le label app: my-app. Il écoute sur le port 80 en externe et redirige les requêtes vers le port 3000 à l'intérieur des Pods.

Le type LoadBalancer est important car il expose l'application à l'extérieur et répartit le trafic entre les Pods.

Déploiement de l'application sur Kubernetes

Une fois les fichiers YAML prêts, ils peuvent être appliqués au cluster :

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

La commande kubectl apply -f crée ou met à jour les ressources dans le cluster en fonction du contenu du fichier YAML.

Vérification de l'état

Après avoir appliqué les fichiers de configuration, il est important de s'assurer que tout a été déployé comme prévu. Étant donné que les Pods et les Services mettent un certain temps à démarrer, commencez par lister les Pods en cours d'exécution :

Si le fichier deployment.yaml spécifie replicas: 2, deux Pods devraient apparaître dans le résultat.

Pour vérifier que le Service fonctionne et est accessible :

Cela affichera l'adresse IP du Service ainsi que les ports par lesquels l'application est accessible.

Obtenir l’URL du service

Pour accéder à votre application, exécuter la commande suivante dans PowerShell ou votre terminal :

Cette commande demande à Minikube de retourner l’URL où votre application est exposée. Minikube vérifie le Service que vous avez créé (my-app-service) et fournit un lien que vous pouvez ouvrir dans votre navigateur.

Mise à l’échelle de l’application

Kubernetes facilite l’ajustement du nombre de Pods en cours d’exécution sans arrêter l’application.

Par exemple, pour passer de 2 à 4 réplicas :

L'exécution de kubectl get pods affichera désormais quatre Pods actifs.

Kubernetes offre des outils puissants pour gérer les applications conteneurisées à n'importe quelle échelle. Un Deployment garantit que le nombre correct de Pods est en cours d'exécution et peut être mis à jour ou restauré facilement. Un Service expose l'application au réseau et équilibre le trafic entrant. Les fichiers de configuration YAML rendent la configuration claire et lisible, tandis que les commandes kubectl permettent d'appliquer et de gérer ces configurations en temps réel.

1. Quel est le principal objectif d'un Deployment dans Kubernetes ?

2. Pourquoi plusieurs Pods peuvent-ils utiliser le même numéro de port (par exemple, 3000) sans conflits ?

question mark

Quel est le principal objectif d'un Deployment dans Kubernetes ?

Select the correct answer

question mark

Pourquoi plusieurs Pods peuvent-ils utiliser le même numéro de port (par exemple, 3000) sans conflits ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 9

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 3.7

bookConfiguration et Lancement du Déploiement Kubernetes

Glissez pour afficher le menu

Maintenant que votre application fonctionne parfaitement dans des conteneurs, le prochain défi consiste à orchestrer et gérer ces conteneurs à grande échelle. C'est ici qu'intervient Kubernetes.

Pour commencer, vous allez définir l'état souhaité de votre application à l'aide de fichiers YAML. Un fichier décrira un Deployment, qui gère les mises à jour et la montée en charge, tandis qu'un autre définira un Service, qui expose votre application au réseau et la rend accessible aux utilisateurs.

Note
Approfondir

YAML (YAML Ain't Markup Language) est un format lisible par l'humain pour les fichiers de configuration. Il est souvent utilisé pour décrire l'infrastructure, automatiser des processus et stocker les paramètres d'application.

Un Deployment garantit que le nombre souhaité d'instances de l'application (Pods) est toujours en cours d'exécution et facilite le déploiement de mises à jour ou le retour à des versions précédentes. Un Service expose ces conteneurs au réseau et répartit le trafic entrant entre eux.

Exécution de Minikube

Note
Définition

Minikube est un outil léger permettant d’exécuter un cluster Kubernetes localement sur votre ordinateur. Il crée un environnement virtuel pour tester et explorer Kubernetes sans recourir à des services cloud.

Après avoir installé Minikube et l’avoir ajouté au PATH de votre système, ouvrez PowerShell (ou le terminal de votre choix) et exécutez :

Cette commande vérifie si Minikube est disponible et affiche la version installée.

Une fois que vous avez confirmé que Minikube est installé, démarrez votre cluster Kubernetes local avec :

Cette commande crée et lance un cluster Kubernetes local sur votre machine. Elle télécharge les composants nécessaires et démarre le plan de contrôle ainsi que les nœuds de travail.

Déploiement : Mise en production de l’application

Commencez par créer le fichier deployment.yaml. Un Deployment dans Kubernetes garantit qu’un nombre spécifique de Pods (instances de l’application) sont toujours en cours d’exécution et peuvent être mis à jour ou restaurés sans interruption de service.

deployment.yaml

deployment.yaml

copy

Dans ce manifeste, le paramètre replicas spécifie combien d’instances de Pod doivent fonctionner simultanément — dans ce cas, deux. Pour savoir quels Pods gérer, le Deployment utilise une combinaison de selector et de labels : le selector agit comme un filtre pour trouver les Pods avec un label spécifique, et le modèle de Pod définit ce label. Lorsque les labels correspondent, le Deployment considère ces Pods comme les siens et s’occupe de maintenir leur nombre, de les mettre à jour et de les redémarrer si nécessaire.

Tous les Pods fonctionnent sur le port 3000. Ils peuvent tous utiliser le même port car chaque Pod opère dans son propre espace réseau isolé, il n’y a donc aucun conflit entre eux.

Service : Accès réseau à l’application

Une fois le Deployment en place, un Service est nécessaire pour fournir un accès réseau et l’équilibrage de charge entre les Pods. Créer le fichier service.yaml :

service.yaml

service.yaml

copy

Ce manifeste définit un Service nommé my-app-service qui dirige le trafic vers les Pods portant le label app: my-app. Il écoute sur le port 80 en externe et redirige les requêtes vers le port 3000 à l'intérieur des Pods.

Le type LoadBalancer est important car il expose l'application à l'extérieur et répartit le trafic entre les Pods.

Déploiement de l'application sur Kubernetes

Une fois les fichiers YAML prêts, ils peuvent être appliqués au cluster :

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

La commande kubectl apply -f crée ou met à jour les ressources dans le cluster en fonction du contenu du fichier YAML.

Vérification de l'état

Après avoir appliqué les fichiers de configuration, il est important de s'assurer que tout a été déployé comme prévu. Étant donné que les Pods et les Services mettent un certain temps à démarrer, commencez par lister les Pods en cours d'exécution :

Si le fichier deployment.yaml spécifie replicas: 2, deux Pods devraient apparaître dans le résultat.

Pour vérifier que le Service fonctionne et est accessible :

Cela affichera l'adresse IP du Service ainsi que les ports par lesquels l'application est accessible.

Obtenir l’URL du service

Pour accéder à votre application, exécuter la commande suivante dans PowerShell ou votre terminal :

Cette commande demande à Minikube de retourner l’URL où votre application est exposée. Minikube vérifie le Service que vous avez créé (my-app-service) et fournit un lien que vous pouvez ouvrir dans votre navigateur.

Mise à l’échelle de l’application

Kubernetes facilite l’ajustement du nombre de Pods en cours d’exécution sans arrêter l’application.

Par exemple, pour passer de 2 à 4 réplicas :

L'exécution de kubectl get pods affichera désormais quatre Pods actifs.

Kubernetes offre des outils puissants pour gérer les applications conteneurisées à n'importe quelle échelle. Un Deployment garantit que le nombre correct de Pods est en cours d'exécution et peut être mis à jour ou restauré facilement. Un Service expose l'application au réseau et équilibre le trafic entrant. Les fichiers de configuration YAML rendent la configuration claire et lisible, tandis que les commandes kubectl permettent d'appliquer et de gérer ces configurations en temps réel.

1. Quel est le principal objectif d'un Deployment dans Kubernetes ?

2. Pourquoi plusieurs Pods peuvent-ils utiliser le même numéro de port (par exemple, 3000) sans conflits ?

question mark

Quel est le principal objectif d'un Deployment dans Kubernetes ?

Select the correct answer

question mark

Pourquoi plusieurs Pods peuvent-ils utiliser le même numéro de port (par exemple, 3000) sans conflits ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 9
some-alt