Eine Kubernetes-Bereitstellung führt mehrere Replikate Ihrer Anwendung aus und ersetzt automatisch alle Instanzen, die ausfallen oder nicht mehr reagieren.
Wenn Sie Kubernetes üben, müssen Sie häufig Kubernetes-Bereitstellungen löschen.
Das Löschen von Deployments ist dank des Befehls kubectl delete Deployments einfach:
kubectl delete deployment deployment_name
Ich werde es mit den Schritten zum Abrufen des Bereitstellungsnamens etwas detaillierter besprechen. Ich zeige Ihnen auch eine andere Möglichkeit zum Löschen von Deployments in Kubernetes.
Verwenden Sie den Befehl kubectl delete Deployment zum Löschen von Kubernetes-Bereitstellungen
Obwohl es normalerweise mit der Registerkarte abgeschlossen wird, sollten Sie besser den Namen der Bereitstellung verwenden, die Sie löschen möchten.
example@unixlinux.online:~# kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
my-dep 2/2 2 2 4m22s
Sobald Sie den Bereitstellungsnamen haben, verwenden Sie ihn einfach wie folgt:
kubectl delete deployments my-dep
Es sollte eine Ausgabe anzeigen, die Ihnen mitteilt, dass Ihre Bereitstellung gelöscht wurde:
example@unixlinux.online:~/pod-create# kubectl delete deployments my-dep
deployment.apps "my-dep" deleted
Sie können dies überprüfen, indem Sie die verfügbaren Bereitstellungen überprüfen:
example@unixlinux.online:~/pod-create# kubectl get deployments
No resources found in default namespace.
Sie können auch Deployment oder Deployments (mit einem s) anstelle von Deployment im kubectl delete deployment verwenden Befehl. Es ist alles dasselbe. Löschen der Kubernetes-Bereitstellung aus einem bestimmten Namespace
Die kubectl delete deployments Der Befehl löscht Bereitstellungen, die im "Standard"-Namespace vorhanden sind, es sei denn, Sie geben einen anderen Namespace an.
Was ist Namespace in Kubernetes?
Namespaces sind für die Verwendung in Umgebungen mit vielen Benutzern vorgesehen, die über mehrere Teams oder Projekte verteilt sind. Es ist wie ein separater virtueller Cluster innerhalb des Kubernetes-Clusters.
Beispielsweise können Sie separate Namespaces haben, um Ihre Workloads für Produktions-, Staging- und Entwicklungsumgebungen zu isolieren.
Alle verfügbaren Namespaces und ihre Bereitstellungen auflisten
Verwenden Sie den folgenden Befehl, um alle Namespaces anzuzeigen:
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
Sie können auch alle Bereitstellungen aus allen Namespaces auflisten:
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
Wenn Sie den Namespace und den Deployment-Namen haben, können Sie ihn mit dem Befehl kubectl delete Deployment angeben:
example@unixlinux.online:~# kubectl delete deployments --namespace=webapps webapps-dep
deployment.apps "webapps-dep" deleted
Wie Sie sehen können, webapps-dep wurde gelöscht.
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
Mehrere Bereitstellungen löschen
Sie können mehr als eine Kubernetes-Bereitstellung löschen, indem Sie ihre Namen wie folgt angeben:
example@unixlinux.online:~/pod-create# kubectl delete deployment my-dep my-dep-2 --namespace=default
Löschen von Kubernetes-Bereitstellungen mithilfe seiner YAML-Konfigurationsdatei
Sie können auch die YAML-Konfigurationsdatei verwenden, um die damit verknüpfte Ressource zu löschen.
example@unixlinux.online:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Lassen Sie mich es Ihnen Schritt für Schritt zeigen.
Erstellen Sie eine neue Bereitstellung mithilfe der Datei „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
Erstellen Sie die Bereitstellung mithilfe der obigen YAML-Datei:
example@unixlinux.online:~/pod-create# kubectl apply -f deployment-definition.yml
deployment.apps/my-dep created
Sie können die Bereitstellung jetzt sehen:
example@unixlinux.online:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep 2/2 2 2 1m13s
Wenn Sie jetzt auf dieselbe YAML-Datei zum Löschen verweisen, werden die Ressourcen (hier Bereitstellungen) gelöscht, die dieser Datei zugeordnet sind.
example@unixlinux.online:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Sie können dies überprüfen, indem Sie alle Bereitstellungen auflisten:
example@unixlinux.online:~/pod-create# kubectl get deployments
No resources found in default namespace.
Ich hoffe, Ihnen gefällt dieser schnelle K8s-Tipp. Wir werden weitere Kubernetes-Tutorials behandeln. Abonnieren Sie weitere Lernmaterialien.