Comment créer un Déploiement dans Kubernetes

Les Déploiements représentent un ensemble de Pods identiques. Un Déploiement exécute plusieurs copies de l’application. Il remplace automatiquement toute instance qui échoue. Il permet de garantir qu’une ou plusieurs instances de l’application sont toujours opérationnelles. Les déploiements sont gérés par le contrôleur de déploiement Kubernetes. Les déploiements utilisent un modèle de Pod, qui contient une spécification pour ses Pods.

Un déploiement Kubernetes est un objet ressource dans Kubernetes qui fournit des mises à jour déclaratives aux applications.

Pour en savoir plus sur les spécifications des déploiements, consulte ladocumentation de l’API Kubernetes.

Dans cet article, nous allons apprendre à créer un déploiement dans Kubernetes et à effectuer des opérations sur celui-ci.

Pré-requis

Cluster Kubernetes avec au moins 1 nœud de travail.
Si tu veux apprendre à créer un cluster Kubernetes, clique ici. Ce guide t’aidera à créer un cluster Kubernetes avec 1 maître et 2 nœuds sur des instances EC2 AWS Ubuntu 18l04.

Ce que nous allons faire

Créer un déploiement

Créer un déploiement

Crée un fichier et ajoute la définition de déploiement suivante dans celui-ci.

vim my-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: httpd-frontend
  name: httpd-frontend
spec:
  replicas: 1
  selector:
    matchLabels:
      app: httpd-frontend
  template:
    metadata:
      labels:
        app: httpd-frontend
    spec:
      containers:
      - image: httpd:2.4-alpine
        name: httpd



mon-déploiement.yaml

Dans cet exemple :

  • Un Déploiement nommé httpd-frontend sera créé, indiqué par le champmetadata: name.
  • Le Déploiement créera 1 réplique du Pod, indiqué par le champreplicas.
  • Le modèle de Pod, ou le champspec: template, indique que ses Pods sont étiquetésapp: httpd-frontend.
  • La spécification du modèle de Pod, ou champtemplate: spec, indique que les Pods exécutent un conteneur, httpd, qui exécute l’image httpd : à la version 2.4-alpine.

Utilise la commande suivante pour créer un déploiement

kubectl create -f my-deployment.yaml

Une fois que tu as créé un déploiement, tu peux obtenir ses détails à l’aide de la commande suivante.

kubectl get deployment | grep httpd-frontend

get-deployment

Le déploiement a créé un replica-set, pour le répertorier, utilise la commande suivante.

kubectl get replicaset | grep httpd-frontend

get-replicaset

Les pods créés par le replica-set peuvent être listés à l’aide de la commande suivante qui listera les pods correspondant au nom spécifié.


kubectl get pods | grep httpd-frontend

get-pod

Maintenant, tu peux tester l’auto-création du pod si l’existant échoue en le supprimant.

Pour supprimer le pod existant, utilise les commandes suivantes.


kubectl get pods | grep httpd-frontend
kubectl delete pod httpd-frontend-74fd6fd8cd-8nj2s
kubectl get pods | grep httpd-frontend

supprimer-pod

Dans la capture d’écran ci-dessus, tu peux voir que le pod a été créé après avoir supprimé le pod existant.

Maintenant, même si le replica-set est supprimé, le déploiement le créera.

Pour tester cela, supprime le replica-set à l’aide de la commande suivante.


kubectl get replicaset | grep httpd-frontend
kubectl delete replicaset httpd-frontend-74fd6fd8cd
kubectl get replicaset | grep httpd-frontend

delete-replicaset

Dans la capture d’écran ci-dessus, tu peux voir que même après avoir supprimé le replica-set, il a été créé.

Pour voir un peu plus d’informations sur le pod, tu peux utiliser « -o wide » dans la commande comme suit.

kubectl get pods | grep httpd-frontend
kubectl get pods -o wide | grep httpd-frontend

get-pod-with-details

Pour obtenir les informations complètes du pod, on peut le décrire à l’aide de la commande suivante.

kubectl describe pod httpd-frontend

describe-pod

Maintenant, si tu n’as plus besoin de ton application déployée à l’aide du déploiement, tu peux la supprimer en supprimant le déploiement.

Utilise les commandes suivantes pour supprimer le déploiement.

kubectl get deployment | grep httpd-frontend
kubectl delete deployment httpd-frontend
kubectl get deployment | grep httpd-frontend

delete-deployment

Dans la capture d’écran ci-dessus, tu peux voir qu’après avoir supprimé le déploiement, il n’a pas été créé. Mais si tu supprimes le pod ou le replicaset qui ont été créés dans le cadre du déploiement, ils seront créés.

Conclusion

Dans cet article, nous avons appris à créer un déploiement et nous avons essayé l’opération de suppression sur le Pod, le Replicaset et le Déploiement.

Vous aimerez aussi...