Les déploiements représentent un ensemble de pods identiques. Un déploiement exécute plusieurs copies de l'application. Il remplace automatiquement toutes les instances qui échouent. Cela permet de s'assurer 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 de ressource dans Kubernetes qui fournit des mises à jour déclaratives aux applications.
Pour en savoir plus sur les spécifications de déploiement, consultez la documentation de l'API Kubernetes
Dans cet article, nous allons apprendre à créer un déploiement dans Kubernetes et à effectuer des opérations dessus.
Pré-requis
Cluster Kubernetes avec au moins 1 noeud worker.
Si vous souhaitez apprendre à créer un cluster Kubernetes, cliquez ici. Ce guide vous aidera à créer un cluster Kubernetes avec 1 maître et 2 nœuds sur les instances AWS Ubuntu 18l04 EC2.
Ce que nous allons faire
Créer un déploiement
Créer un déploiement
Créez un fichier et ajoutez-y la définition de déploiement suivante.
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
Dans cet exemple :
- Un déploiement nommé httpd-frontend sera créé, indiqué par
metadata: name
champ. - Le déploiement créera 1 réplica du pod, indiqué par les
replicas
champ. - Le modèle de pod, ou
spec: template
, indique que ses pods sont libellés
.app: httpd-frontend
- La spécification du modèle de pod, ou
template: spec
, indique que les pods exécutent un conteneur, httpd, qui exécute l'image httpd : à la version 2.4-alpine.
Utilisez la commande suivante pour créer un déploiement
kubectl create -f my-deployment.yaml
Une fois que vous avez créé un déploiement, vous pouvez obtenir ses détails à l'aide de la commande suivante.
kubectl get deployment | grep httpd-frontend
Le déploiement a créé un jeu de répliques, pour le répertorier, utilisez la commande suivante.
kubectl get replicaset | grep httpd-frontend
Les pods créés par l'ensemble de réplicas peuvent être répertoriés à l'aide de la commande suivante qui répertorie les pods correspondant au nom spécifié.
kubectl get pods | grep httpd-frontend
Maintenant, vous pouvez tester la création automatique du pod si l'existant échoue en le supprimant.
Pour supprimer le pod existant, utilisez les commandes suivantes.
kubectl get pods | grep httpd-frontend
kubectl delete pod httpd-frontend-74fd6fd8cd-8nj2s
kubectl get pods | grep httpd-frontend
Dans la capture d'écran ci-dessus, vous pouvez voir que le pod a été créé après la suppression du pod existant.
Désormais, même si le jeu de répliques est supprimé, le déploiement le créera.
Pour tester cela, supprimez le jeu de répliques à l'aide de la commande suivante.
kubectl get replicaset | grep httpd-frontend
kubectl delete replicaset httpd-frontend-74fd6fd8cd
kubectl get replicaset | grep httpd-frontend
Dans la capture d'écran ci-dessus, vous pouvez voir que même après avoir supprimé le jeu de répliques, il a été créé.
Pour voir un peu plus d'informations sur le pod, "-o wide" peut être utilisé dans la commande comme suit.
kubectl get pods | grep httpd-frontend
kubectl get pods -o wide | grep httpd-frontend
Pour obtenir les informations complètes du pod, il peut être décrit à l'aide de la commande suivante.
kubectl describe pod httpd-frontend
Désormais, si vous n'avez plus besoin de déployer votre application à l'aide du déploiement, vous pouvez la supprimer en supprimant le déploiement.
Utilisez 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
Dans la capture d'écran ci-dessus, vous pouvez voir qu'après avoir supprimé le déploiement, il n'a pas été créé. Mais si vous supprimez le pod ou le jeu de répliques qui ont été créés dans le cadre du déploiement, ils sont créés.
Conclusion
Dans cet article, nous avons appris à créer un déploiement et essayé l'opération de suppression sur Pod, Replicaset et Deployment.