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.
[email protected]:~# 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:
[email protected]:~/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:
[email protected]:~/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:
[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
Sie können auch alle Bereitstellungen aus allen Namespaces auflisten:
[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
Wenn Sie den Namespace und den Deployment-Namen haben, können Sie ihn mit dem Befehl kubectl delete Deployment angeben:
[email protected]:~# kubectl delete deployments --namespace=webapps webapps-dep
deployment.apps "webapps-dep" deleted
Wie Sie sehen können, webapps-dep
wurde gelöscht.
[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
Mehrere Bereitstellungen löschen
Sie können mehr als eine Kubernetes-Bereitstellung löschen, indem Sie ihre Namen wie folgt angeben:
[email protected]:~/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.
[email protected]:~/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“:
[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
Erstellen Sie die Bereitstellung mithilfe der obigen YAML-Datei:
[email protected]:~/pod-create# kubectl apply -f deployment-definition.yml
deployment.apps/my-dep created
Sie können die Bereitstellung jetzt sehen:
[email protected]:~# 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.
[email protected]:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Sie können dies überprüfen, indem Sie alle Bereitstellungen auflisten:
[email protected]:~/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.