GNU/Linux >> Linux Esercitazione >  >> Linux

Come eliminare i pod in Kubernetes [Suggerimenti rapidi per K8s]

Durante il lavoro sull'ambiente del cluster Kubernetes, ci saranno momenti in cui ti imbatterai in una situazione in cui devi eliminare i pod da uno dei tuoi nodi di lavoro.

Potrebbe essere necessario eseguire il debug dei problemi con il nodo stesso, aggiornare il nodo o semplicemente ridimensionare il cluster.

L'azione di eliminazione di un pod Kubernetes è molto semplice con il kubectl delete pod comando:

kubectl delete pod pod-name

Tuttavia, ci sono passaggi specifici che dovresti adottare per ridurre al minimo le interruzioni per la tua applicazione. Lo spiegherò in dettaglio in questo articolo.

Elimina i pod Kubernetes con grazia

Per prima cosa, elenca tutti i pod:

[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>

Supponiamo ora di voler eliminare il Pod chiamato "pod-delete-demo", eseguire il seguente comando:

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

Conferma che il Pod in questione è stato eliminato elencando tutti i Pod:

[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>

Puoi vedere che non c'è nessun pod pod-delete-demo in esecuzione.

Forza l'eliminazione dei pod Kubernetes

Perché è necessaria l'eliminazione forzata del pod??

A volte il Pod si blocca in terminazione/sconosciuto stato su un nodo irraggiungibile dopo un timeout.

I pod possono entrare in questi stati anche quando l'utente tenta di eliminare con grazia un pod su un nodo irraggiungibile.

In questi scenari puoi eliminare il Pod con forza.

Se desideri eliminare forzatamente un Pod utilizzando la versione kubectl>=1.5, procedi come segue:

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

Se stai utilizzando una qualsiasi versione di kubectl <=1.4, dovresti omettere il --force opzione e utilizzare:

kubectl delete pods pod_name --grace-period=0

Ora eliminiamo il pod "pod-delete-demo" usando il metodo sopra:

[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

NOTA: Forza l'eliminazione dei pod non attendi la conferma dal kubelet che il Pod è stato terminato.

Se anche dopo questi comandi il pod è bloccato in Unknown state, utilizzare il comando seguente per rimuovere il pod dal cluster:

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

Conferma che il pod è stato eliminato:

[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>

Spero che tu possa trovare utile questo suggerimento Kubernetes. Rimani iscritto per ulteriori suggerimenti ed esercitazioni su DevOps .

Rakesh Jain
DevOps professionale | RHCA | Jenkins | Git | Docker | Kubernetes | Abile | Prometeo | Grafana | AWS Cloud

Linux
  1. Come distribuire il tuo primo pod su un cluster Kubernetes

  2. Come eliminare una distribuzione Kubernetes [Suggerimenti rapidi per K8s]

  3. Come riavviare i pod in Kubernetes [Suggerimento rapido per K8]

  4. Come leggere i nodi in Kubernetes [Suggerimento rapido per K8]

  5. Come eliminare un servizio in Kubernetes

Come configurare il registro Docker privato in Kubernetes (k8s)

Come eliminare le righe in Vim / Vi

Come creare uno StatefulSet in Kubernetes

Come creare e gestire i pod Kubernetes in Linux

Come visualizzare i registri dei pod Kubernetes con Kubectl

Perché Kubernetes si chiama K8s?