Créez votre premier déploiement sur un cluster Kubernetes

Mis à jours 6 septembre 2022

Dans cet article, nous allons voir comment créer votre premier déploiement sur un cluster Kubernetes. Nous allons, par exemple, créer un déploiement pour NginX.

Une fois que nous avons un cluster Kubernetes en cours d’exécution, nous pouvons l’utiliser pour déployer nos applications conteneurisées. Pour cela, nous devons d’abord créer une configuration de déploiement Kubernetes.

Un déploiement fournit des mises à jour déclaratives pour les Pods et les ReplicaSets. Nous décrivons un état souhaité dans le déploiement et le contrôleur de déploiement change l’état réel en l’état souhaité à une vitesse contrôlée.

Nous pouvons créer et gérer un déploiement en utilisant l’interface de ligne de commande Kubernetes « kubectl ». Kubectl utilise l’API Kubernetes pour interagir avec le cluster.

De plus, il y a trois étapes dans un cycle de vie de déploiement :

  • En cours : Kubernetes marque un déploiement comme « en cours » lorsque le déploiement crée un nouveau ReplicaSet, lorsque le déploiement augmente son plus récent ReplicaSet ou réduit son ancien ReplicaSet, ou lorsque de nouveaux pods sont prêts ou disponibles.
  • Terminé : Kubernetes marque un déploiement comme « terminé » lorsque toutes les répliques associées au déploiement ont été mises à jour, sont disponibles et qu’aucune ancienne réplique du déploiement n’est en cours d’exécution.
  • Échoué : cela peut se produire en raison d’un quota insuffisant, d’échecs de la vérification de l’état de préparation, d’erreurs d’extraction d’image ou d’autorisations insuffisantes.

Conditions préalables pour créer un déploiement sur un cluster Kubernetes

  • Compte Infomaniak (Plus abordable que AWS et offre plus d’options)
  • Un cluster Kubernetes

Remarque : vous pouvez également utiliser des machines virtuelles pour créer un cluster si vous ne souhaitez pas essayer les instances de cloud.

Ce que nous allons nous faire

  • Créer un déploiement Kubernetes pour NginX

Créer un déploiement Kubernetes pour NginX

  1. Pour créer notre premier déploiement, nous allons simplement créer un nouveau répertoire pour créer notre fichier d’objet/déploiement. Utilisez la commande suivante pour créer un nouveau répertoire dans votre système :
mkdir my-first-deployment
cd my-first-deployment/
  1. Avant de continuer, vérifiez l’état du cluster.
  1. Pour vérifier les nœuds disponibles dans le cluster et vérifier la version de « kubectl », utilisez les commandes suivantes.
sudo kubectl version
sudo kubectl get nodes
déploiement sur un cluster Kubernetes : version kubectl
version kubectl

Une fois que vous avez des nœuds disponibles dans votre cluster, vous êtes prêt à créer votre déploiement.

  1. Créez un fichier « my-first-deployment.yml » avec le bloc de code suivant :
vim my-first-deployment.yml

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

Ici, nous avons :

  • apiVersion : APIVersion définit le schéma versionné de cette représentation d’un objet.
  • kind : type d’objet que vous souhaitez créer, tel que Deployment, Service, Configmap, etc.
  • name : le nom doit être unique dans un espace de noms.
  • labels : carte des clés de chaîne et des valeurs pouvant être utilisée pour organiser et catégoriser les objets
  • spec : spécification du comportement souhaité du déploiement.
  • replicas : nombre de pods souhaités.
  • selector : sélecteur d’étiquettes (labels) pour les pods. Les ReplicaSets existants dont les pods sont sélectionnés par ceci seront ceux affectés par ce déploiement. Il doit correspondre aux libellés du modèle de module.
  1. Vous êtes maintenant prêt à créer votre déploiement à l’aide des commandes suivantes :
sudo kubectl apply -f my-first-deployment.yml
sudo kubectl  get deployments
appliquer kubectl

Dans la capture d’écran ci-dessus, vous pouvez voir que le déploiement a été créé avec deux pods disponibles à l’utilisation.

  1. Vous pouvez obtenir les détails des pods à l’aide de la commande suivante :
sudo kubectl get pods
kubectl obtenir des pods
  1. Si vous souhaitez en savoir plus sur le déploiement, vous pouvez utiliser cette commande « kubectl describe » pour obtenir les détails complets du déploiement.
sudo kubectl get deployments
sudo kubectl describe  deployments nginx-deployment
obtenir des déploiements kubectl
  1. Si vous n’avez plus besoin du déploiement, vous pouvez le supprimer à l’aide de la commande « kubectl delete ».
sudo kubectl  get deployments
sudo kubectl delete deployments nginx-deployment
sudo kubectl  get deployments
obtenir des déploiements kubectl

Dans la capture d’écran ci-dessus, vous pouvez voir que le déploiement n’est plus disponible après sa suppression.

Une fois que vous avez supprimé le déploiement, les pods sont également supprimés.

  1. Vous pouvez vérifier la disponibilité des pods à l’aide de la commande suivante :
sudo  kubectl  get pods
kubectl obtenir des pods

Dans la capture d’écran ci-dessus, vous pouvez voir que les pods ont été supprimés après la suppression du déploiement et ne sont pas disponibles.

Conclusion

Dans cet article, nous avons vu les étapes pour créer votre premier déploiement NginX sur Kubernetes. Nous avons également vu comment les détails concernant le déploiement peuvent être extraits. Parallèlement, nous avons exploré les commandes pour supprimer le déploiement.

Aina Strauss

À lire aussi

19 outils pour apprivoiser les déploiements de Kubernetes

Mis à jours 6 septembre 2022 Tirez parti de ces outils Kubernetes pour simplifier les …