Un déploiement Kubernetes exécute plusieurs répliques de votre application et remplace automatiquement toutes les instances qui échouent ou ne répondent plus.
Lorsque vous pratiquez Kubernetes, vous devrez souvent supprimer des déploiements Kubernetes.
La suppression de déploiements est facile grâce à la commande kubectl delete deployments :
kubectl delete deployment deployment_name
Je vais en discuter un peu plus en détail avec les étapes pour obtenir le nom du déploiement. Je vais également vous montrer une autre façon de supprimer des déploiements dans Kubernetes.
Utiliser la commande kubectl delete deployment pour supprimer les déploiements Kubernetes
Bien que l'onglet soit généralement rempli, vous feriez mieux d'indiquer le nom du déploiement que vous souhaitez supprimer.
[email protected]:~# kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
my-dep 2/2 2 2 4m22s
Une fois que vous avez le nom du déploiement, utilisez-le simplement comme ceci :
kubectl delete deployments my-dep
Il devrait afficher une sortie vous indiquant que votre déploiement est supprimé :
[email protected]:~/pod-create# kubectl delete deployments my-dep
deployment.apps "my-dep" deleted
Vous pouvez le vérifier en vérifiant les déploiements disponibles :
[email protected]:~/pod-create# kubectl get deployments
No resources found in default namespace.
Vous pouvez également utiliser deploy ou deployments (avec un s) au lieu de deployment dans le kubectl delete deployment
commande. C'est pareil.
Suppression du déploiement Kubernetes d'un espace de noms spécifique
Les déploiements kubectl delete deployments
La commande supprime les déploiements qui sont présents dans l'espace de noms "par défaut", sauf si vous fournissez un espace de noms différent.
Qu'est-ce que l'espace de noms dans Kubernetes ?
Les espaces de noms sont destinés à être utilisés dans des environnements avec de nombreux utilisateurs répartis sur plusieurs équipes ou projets. C'est comme un cluster virtuel séparé au sein du cluster Kubernetes.
Par exemple, vous pouvez disposer d'espaces de noms distincts pour isoler vos charges de travail pour les environnements de production, de préproduction et de développement.
Répertorier tous les espaces de noms disponibles et leurs déploiements
Pour voir tous les espaces de noms, utilisez la commande suivante :
[email protected]:~# kubectl get namespaces
NAME STATUS AGE
default Active 46d
kube-node-lease Active 46d
kube-public Active 46d
kube-system Active 46d
webapps Active 22d
Vous pouvez également lister tous les déploiements de tous les espaces de noms :
[email protected]:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep2 2/2 2 2 3h29m
kube-system calico-kube-controllers 1/1 1 1 46d
kube-system coredns 2/2 2 2 46d
webapps webapps-dep 2/2 2 2 5h19m
Lorsque vous avez l'espace de noms et le nom du déploiement, vous pouvez le spécifier à la commande kubectl delete deployment :
[email protected]:~# kubectl delete deployments --namespace=webapps webapps-dep
deployment.apps "webapps-dep" deleted
Comme vous pouvez le voir, webapps-dep
a été supprimé.
[email protected]:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep2 2/2 2 2 3h29m
kube-system calico-kube-controllers 1/1 1 1 46d
kube-system coredns 2/2 2 2 46d
Supprimer plusieurs déploiements
Vous pouvez supprimer plusieurs déploiements Kubernetes en fournissant leurs noms comme ceci :
[email protected]:~/pod-create# kubectl delete deployment my-dep my-dep-2 --namespace=default
Supprimer des déploiements Kubernetes à l'aide de son fichier de configuration YAML
Vous pouvez également utiliser le fichier de configuration YAML pour supprimer la ressource qui lui est associée.
[email protected]:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Laissez-moi vous le montrer étape par étape.
Créez un nouveau déploiement à l'aide du fichier deployment-definition.yml :
[email protected]:~# cat pod-create/deployment-definition.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-dep
labels:
app: webapp
namespace: default
spec:
template:
metadata:
name: my-dep-pods
labels:
app: webapp
tier: front-end
spec:
containers:
- name: httpd
image: httpd
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
replicas: 2
selector:
matchLabels:
tier: front-end
Créez le déploiement à l'aide du fichier YAML ci-dessus :
[email protected]:~/pod-create# kubectl apply -f deployment-definition.yml
deployment.apps/my-dep created
Vous pouvez voir le déploiement maintenant :
[email protected]:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep 2/2 2 2 1m13s
Maintenant, si vous faites référence au même fichier YAML à des fins de suppression, cela supprimera les ressources (déploiements ici) associées à ce fichier.
[email protected]:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Vous pouvez le vérifier en listant tous les déploiements :
[email protected]:~/pod-create# kubectl get deployments
No resources found in default namespace.
J'espère que vous aimez cette astuce rapide K8s. Nous couvrirons plus de tutoriels Kubernetes. Abonnez-vous pour plus de matériel d'apprentissage.