Mise à l'échelle et gestion des pods avec les déploiements (Deployments)

KubernetesKubernetesBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à mettre à l'échelle et à gérer les Pods avec les déploiements (Deployments) dans Kubernetes. Les déploiements sont une abstraction de niveau supérieur qui vous permettent de gérer et de mettre à l'échelle de manière déclarative les ensembles de réplicas (replica sets) de Pods. En utilisant les déploiements, vous pouvez facilement mettre à jour votre application vers une nouvelle version, revenir à une version précédente et augmenter ou diminuer l'échelle de votre application pour répondre aux demandes changeantes.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedDeploymentGroup(["Advanced Deployment"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/BasicCommandsGroup -.-> kubernetes/delete("Delete") kubernetes/BasicCommandsGroup -.-> kubernetes/edit("Edit") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") kubernetes/AdvancedDeploymentGroup -.-> kubernetes/rollout("Rollout") kubernetes/AdvancedDeploymentGroup -.-> kubernetes/scale("Scale") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") subgraph Lab Skills kubernetes/initialization -.-> lab-9675{{"Mise à l'échelle et gestion des pods avec les déploiements (Deployments)"}} kubernetes/get -.-> lab-9675{{"Mise à l'échelle et gestion des pods avec les déploiements (Deployments)"}} kubernetes/create -.-> lab-9675{{"Mise à l'échelle et gestion des pods avec les déploiements (Deployments)"}} kubernetes/delete -.-> lab-9675{{"Mise à l'échelle et gestion des pods avec les déploiements (Deployments)"}} kubernetes/edit -.-> lab-9675{{"Mise à l'échelle et gestion des pods avec les déploiements (Deployments)"}} kubernetes/apply -.-> lab-9675{{"Mise à l'échelle et gestion des pods avec les déploiements (Deployments)"}} kubernetes/rollout -.-> lab-9675{{"Mise à l'échelle et gestion des pods avec les déploiements (Deployments)"}} kubernetes/scale -.-> lab-9675{{"Mise à l'échelle et gestion des pods avec les déploiements (Deployments)"}} kubernetes/describe -.-> lab-9675{{"Mise à l'échelle et gestion des pods avec les déploiements (Deployments)"}} end

Démarrer le cluster Minikube

Avant de créer des ressources, vous avez besoin d'un cluster Kubernetes en cours d'exécution. Minikube est un environnement Kubernetes léger qui s'exécute sur votre machine locale.

  1. Accédez à votre répertoire de travail :

    Ouvrez le terminal et accédez au dossier de projet par défaut :

    cd /home/labex/project
  2. Démarrez Minikube :

    Démarrez Minikube pour initialiser un cluster Kubernetes :

    minikube start
    • Cette commande configure un cluster Kubernetes mono - noeud sur votre machine locale.
    • Minikube peut prendre quelques minutes à démarrer en fonction des performances de votre système.
  3. Vérifiez que Minikube est en cours d'exécution :

    Vérifiez l'état du cluster Minikube :

    minikube status
    • Recherchez des composants tels que kubelet et apiserver listés comme Running (En cours d'exécution).
    • Si le cluster n'est pas en cours d'exécution, relancez la commande minikube start.

Si vous rencontrez des problèmes lors du démarrage de Minikube, utilisez minikube delete pour réinitialiser l'environnement si nécessaire.

Créer un déploiement (Deployment)

  1. Créez un fichier nommé my-deployment.yaml dans /home/labex/project/ avec le contenu suivant :
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: nginx:latest
          ports:
            - containerPort: 80

Ce fichier YAML définit un déploiement (Deployment) avec 3 réplicas (replicas), exécutant un conteneur Nginx. Le champ selector sélectionne les Pods contrôlés par le déploiement en fonction de l'étiquette (label) app.

  1. Déployez le déploiement my-deployment :
kubectl apply -f my-deployment.yaml

Cela créera le déploiement my-deployment ainsi que ses ensembles de réplicas (ReplicaSets) et Pods associés.

  1. Vérifiez que le déploiement a été créé :
kubectl get deployments

Cela vous montrera les déploiements dans votre cluster, y compris le déploiement my-deployment.

Mettre à l'échelle le déploiement (Deployment)

  1. Augmentez l'échelle du déploiement my-deployment à 5 réplicas (replicas) :
kubectl scale deployment my-deployment --replicas=5

Cela augmentera le nombre de réplicas dans le déploiement my-deployment à 5.

  1. Vérifiez que le déploiement a été mis à l'échelle :
kubectl get deployments

Cela vous montrera les déploiements dans votre cluster, y compris le déploiement my-deployment avec 5 réplicas.

Mettre à jour le déploiement (Deployment)

  1. Modifiez le déploiement my-deployment pour utiliser l'image nginx:1.19 :
kubectl edit deployment my-deployment

Cela ouvrira le déploiement dans votre éditeur de texte par défaut. Modifiez le champ image pour qu'il soit égal à nginx:1.19 et enregistrez le fichier.

  1. Vérifiez que le déploiement a été mis à jour :
kubectl rollout status deployment/my-deployment

Cela vous montrera l'état du dernier déploiement (rollout) du déploiement my-deployment.

Effectuer un rollback (retour en arrière) du déploiement

  1. Effectuez un rollback du déploiement my-deployment à la version précédente :
kubectl rollout undo deployment/my-deployment

Cela fera revenir le déploiement my-deployment à la version précédente.

  1. Vérifiez que le déploiement a été ramené à la version précédente :
kubectl rollout status deployment/my-deployment

Cela vous montrera l'état du dernier déploiement (rollout) du déploiement my-deployment.

Nettoyage

  1. Supprimez le déploiement (Deployment) my-deployment :
kubectl delete deployment my-deployment

Cela supprimera le déploiement my-deployment ainsi que ses ensembles de réplicas (ReplicaSets) et Pods associés.

Résumé

Dans ce laboratoire (lab), vous avez appris à créer et gérer des déploiements (Deployments) dans Kubernetes. Vous avez créé un déploiement avec 3 réplicas (replicas), mis à l'échelle le déploiement à 5 réplicas, mis à jour le déploiement pour utiliser une image différente, effectué un rollback (retour en arrière) du déploiement à la version précédente.