GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So löschen Sie Pods in Kubernetes [Schnelle K8s-Tipps]

Bei der Arbeit an einer Kubernetes-Clusterumgebung kann es vorkommen, dass Sie in eine Situation geraten, in der Sie Pods von einem Ihrer Worker-Knoten löschen müssen.

Möglicherweise müssen Sie Probleme mit dem Knoten selbst beheben, den Knoten aktualisieren oder Ihren Cluster einfach herunterskalieren.

Das Löschen eines Kubernetes-Pods ist mit dem kubectl delete pod sehr einfach Befehl:

kubectl delete pod pod-name

Es gibt jedoch bestimmte Schritte, die Sie unternehmen sollten, um Unterbrechungen für Ihre Anwendung zu minimieren. Ich werde es in diesem Artikel ausführlich erklären.

Kubernetes-Pods ordnungsgemäß löschen

Listen Sie zuerst alle Pods auf:

[email protected]:~# kubectl get pods -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-557548758d-d2pmd   1/1     Running   0          2d23h   172.16.213.194   kworker-rj2   <none>           <none>
my-dep-557548758d-gprnr   1/1     Running   0          2d23h   172.16.213.49    kworker-rj1   <none>           <none>
pod-delete-demo           1/1     Running   0          4s      172.16.213.196   kworker-rj2   <none>           <none>

Angenommen, Sie möchten den Pod mit dem Namen „pod-delete-demo“ löschen, führen Sie den folgenden Befehl aus:

[email protected]:~# kubectl delete pod pod-delete-demo
pod "pod-delete-demo" deleted

Bestätigen Sie, dass der betreffende Pod gelöscht wurde, indem Sie alle Pods auflisten:

[email protected]:~# kubectl get pods -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-557548758d-d2pmd   1/1     Running   0          2d23h   172.16.213.194   kworker-rj2   <none>           <none>
my-dep-557548758d-gprnr   1/1     Running   0          2d23h   172.16.213.49    kworker-rj1   <none>           <none>

Sie können sehen, dass kein pod-delete-demo Pod läuft.

Löschen von Kubernetes-Pods erzwingen

Warum müssen Sie das Löschen von Pods erzwingen?

Manchmal bleibt der Pod bei terminating/unknown hängen Zustand auf einem nicht erreichbaren Knoten nach einem Timeout.

Pods können auch in diese Zustände eintreten, wenn der Benutzer versucht, einen Pod auf einem nicht erreichbaren Knoten ordnungsgemäß zu löschen.

In diesen Szenarien können Sie den Pod zwangsweise löschen.

Wenn Sie einen Pod mit kubectl-Version>=1.5 zwangsweise löschen möchten, gehen Sie wie folgt vor:

kubectl delete pods pod_name --grace-period=0 --force

Wenn Sie irgendeine Version von kubectl <=1.4 verwenden, sollten Sie --force weglassen Option und Verwendung:

kubectl delete pods pod_name --grace-period=0

Lassen Sie uns nun den Pod „pod-delete-demo“ mit der obigen Methode löschen:

[email protected]:~# kubectl delete pod pod-delete-demo --force --grace-period=0 --namespace=default
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
pod "pod-delete-demo" force delete

HINWEIS: Pod-Löschungen erzwingen nicht Warten Sie auf die Bestätigung vom Kubelet, dass der Pod beendet wurde.

Wenn der Pod auch nach diesen Befehlen in Unknown steckt verwenden Sie den folgenden Befehl, um den Pod aus dem Cluster zu entfernen:

kubectl patch pod pod-delete-demo -p '{"metadata":{"finalizers":null}}'

Bestätigen Sie, dass der Pod gelöscht wurde:

[email protected]:~# kubectl get pods -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-557548758d-d2pmd   1/1     Running   0          2d23h   172.16.213.194   kworker-rj2   <none>           <none>
my-dep-557548758d-gprnr   1/1     Running   0          2d23h   172.16.213.49    kworker-rj1   <none>           <none>

Ich hoffe, Sie finden diesen Kubernetes-Tipp hilfreich. Abonnieren Sie weitere DevOps-Tipps und Tutorials .

Rakesh Jain
DevOps-Profi | RCA | Jenkins | Git | Docker | Kubernetes | Ansible | Prometheus | Grafana | AWS-Cloud

Linux
  1. So stellen Sie Ihren ersten Pod in einem Kubernetes-Cluster bereit

  2. So löschen Sie eine Kubernetes-Bereitstellung [Schnelle K8s-Tipps]

  3. So starten Sie Pods in Kubernetes neu [Schneller K8s-Tipp]

  4. So lesen Sie Knoten in Kubernetes [Schneller K8s-Tipp]

  5. So löschen Sie einen Dienst in Kubernetes

So richten Sie eine private Docker-Registrierung in Kubernetes (k8s) ein

So löschen Sie Zeilen in Vim / Vi

So erstellen Sie ein StatefulSet in Kubernetes

So erstellen und verwalten Sie Kubernetes-Pods unter Linux

So zeigen Sie Kubernetes-Pod-Protokolle mit Kubectl an

Warum heißt Kubernetes K8s?