Wie man

Löschen von entfernten/beendeten Pods in Kubernetes erzwingen

Löschen von entfernten/beendeten Pods in Kubernetes erzwingen

In diesem kurzen Tutorial sehen wir uns an, wie Sie entfernte oder beendete Pods in einem Kubernetes-Cluster löschen können. Es gibt viele Gründe, warum Sie einige Pods im Evicted and Terminated State finden. Für die Räumung ist es oft eine Folge von Ressourcendruck in den Worker-Knoten oder Anwendungsfehlern. Die Beendigung kann das Ergebnis des Herunterskalierens einer Anwendung oder der Bereitstellung einer neuen Anwendungsversion sein, bei der alte Pods danach beendet werden.

Der Kubelet-Dienst, der in jedem Knoten im Cluster ausgeführt wird, ist für die Pod-Bereinigung verantwortlich. Die Reihenfolge der Pods-Räumung ist:

Sie können eine Liste der Pods in einem Namespace abrufen, der im Zustand Terminated oder Evicted feststeckt, indem Sie den folgenden Befehl ausführen:

kubectl get pods -n namespace | egrep -i 'Beendet|Ausgewiesen'

Löschen von entfernten/beendeten Pods in Kubernetes erzwingen

Sie können diese Pods auf verschiedene Weise löschen.

Verwenden von nativen kubectl- und Bash-Befehlen

Dies sind Bash-Befehle mit Filterung, die Sie ausführen, um das Löschen von Pods im Namespace zu erzwingen, die im Zustand Evicted oder Terminated feststecken.

# Namespace definieren namespace="mynamespace" # Alle Pods im Zustand Terminated / Evicted abrufen epods=$(kubectl get pods -n $namespace | egrep -i 'Terminated|Evicted' | awk 'print $1 ') # Force Löschen der Pods für i in $epods[@]; do kubectl pod löschen --force=true --wait=false --grace-period=0 $i -n $namespace done 

Bestätigen Sie, ob sich noch Pods in diesem Status befinden.

kubectl get pods -n $namespace | egrep -i 'Beendet|Ausgewiesen'

Löschen aller entfernten und beendeten Pods aus allen Namespaces:

kubectl get pods --all-namespaces | egrep -i 'Ausgewiesen|Beendet' | awk 'print $2 " --namespace=" $1' | xargs kubectl delete pod --force=true --wait=false --grace-period=0

Löschen Sie alle Container im Zustand ImagePullBackOff aus allen Namespaces - Bonus:

kubectl get pods --all-namespaces | grep 'ImagePullBackOff' | awk 'print $2 " --namespace=" $1' | xargs kubectl Pod löschen

Löschen Sie alle Container im Zustand ImagePullBackOff oder ErrImagePull aus allen Namespaces - Bonus -:

kubectl get pods --all-namespaces | grep -E 'ImagePullBackOff|ErrImagePull|Eviced' | awk 'print $2 " --namespace=" $1' | xargs kubectl Pod löschen

Verwenden von kubectl-Filtern und jq

Sie können auch filtern kubectl Befehlsausgabe und Pipe zu jq, um bestimmte Spalten zu erhalten.

Installieren Sie zuerst den jq-Befehl:

--- Ubuntu / Debian --- $ sudo apt update && sudo apt install jq --- CentOS/Fedora --- $ sudo yum -y install epel-release $ sudo yum -y install jq --- RHEL --- wget https: //github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 -O jq chmod +x jq sudo mv jq /usr/local/bin

Entfernen Sie dann Evicted Pods mit dem Befehl:

kubectl get pods --all-namespaces -o json | jq '.Artikel[] | wählen(.Status.Grund!=null) | wählen(.Status.Grund | enthält("Ausgewiesen")) | "kubectl Pods löschen \(.Metadaten.Name) -n \(.Metadaten.namespace)"' | xargs -n 1 bash -c

Bleiben Sie in Verbindung für weitere interessante Guides zu Containern. Überprüfen Sie auch andere relevante Artikel auf unserer Website.

Installieren Sie Istio Service Mesh im EKS Kubernetes-Cluster

So dekodieren / entschlüsseln Sie das Kubernetes-Geheimnis

So kopieren Sie das Kubernetes-Geheimnis zwischen Namespaces

Kubernetes-Kurse:Kubernetes für absolute Anfänger - Hands-onKubernetes für absolute Anfänger - Hands-on$15.68$156.75auf LagerJETZT KAUFENUdemy.comZertifizierter Kubernetes Administrator (CKA) mit PraxistestsZertifizierter Kubernetes Administrator (CKA) mit Praxistests$15.68$156.75auf LagerJETZT KAUFENUdemy.comKubernetes Certified Application Developer (CKAD) mit TestsKubernetes Certified Application Developer (CKAD) mit Tests$15.68$156.75auf LagerJETZT KAUFENUdemy.com

Red Hat OpenShift 4 Neue Funktionen
EinführungDie Titel bei Red Hat vor wenigen Tagen hießen: „Red Hat definiert Enterprise Kubernetes durch vollständige Stack-Automatisierung mit Red Ha...
Kubernetes & OpenShift Dynamic Volume Provisioning mit GlusterFS und Heketi
Willkommen zu unserem Leitfaden zum Einrichten von Persistent Volumes Dynamic Provisioning mit GlusterFS und Heketi für Ihre Kubernetes / OpenShift-Cl...
Installieren Sie Harbor Image Registry auf Kubernetes / OpenShift mit Helm Chart
Harbor ist eine native Open-Source-Cloud-Registry, die Container-Images auf Schwachstellen speichert, signiert und scannt. Diese Anleitung führt Sie d...