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.
example@unixlinux.online:~# 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é :
example@unixlinux.online:~/pod-create# kubectl delete deployments my-dep
deployment.apps "my-dep" deleted
Vous pouvez le vérifier en vérifiant les déploiements disponibles :
example@unixlinux.online:~/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 :
example@unixlinux.online:~# 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 :
example@unixlinux.online:~# 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 :
example@unixlinux.online:~# kubectl delete deployments --namespace=webapps webapps-dep
deployment.apps "webapps-dep" deleted
Comme vous pouvez le voir, webapps-dep a été supprimé.
example@unixlinux.online:~# 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 :
example@unixlinux.online:~/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.
example@unixlinux.online:~/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 :
example@unixlinux.online:~# 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 :
example@unixlinux.online:~/pod-create# kubectl apply -f deployment-definition.yml
deployment.apps/my-dep created
Vous pouvez voir le déploiement maintenant :
example@unixlinux.online:~# 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.
example@unixlinux.online:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Vous pouvez le vérifier en listant tous les déploiements :
example@unixlinux.online:~/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.