GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo eliminar pods en Kubernetes [Consejos rápidos de K8s]

Mientras trabaja en el entorno de clúster de Kubernetes, habrá momentos en los que se encuentre con una situación en la que necesite eliminar pods de uno de sus nodos de trabajo.

Es posible que deba depurar problemas con el nodo en sí, actualizar el nodo o simplemente reducir la escala de su clúster.

La acción de eliminar un pod de Kubernetes es muy simple con el kubectl delete pod comando:

kubectl delete pod pod-name

Sin embargo, hay pasos específicos que debe seguir para minimizar la interrupción de su aplicación. Lo explicaré en detalle en este artículo.

Eliminar pods de Kubernetes correctamente

Primero, enumere todos los pods:

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

Ahora suponga que desea eliminar el Pod llamado "pod-delete-demo", ejecute el siguiente comando:

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

Confirme que el pod en cuestión se eliminó enumerando todos los pods:

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

Puede ver que no hay ningún pod-delete-demo que se esté ejecutando.

Forzar eliminación de pods de Kubernetes

¿Por qué necesita forzar la eliminación del pod?

A veces, el pod se atasca en terminando/desconocido Estado en un nodo inalcanzable después de un tiempo de espera.

Los pods también pueden entrar en estos estados cuando el usuario intenta eliminar correctamente un pod en un nodo inalcanzable.

En esos escenarios, puede eliminar el Pod a la fuerza.

Si desea eliminar un Pod a la fuerza usando la versión de kubectl>=1.5, haga lo siguiente:

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

Si está utilizando cualquier versión de kubectl <=1.4, debe omitir --force opción y uso:

kubectl delete pods pod_name --grace-period=0

Ahora eliminemos el pod "pod-delete-demo" usando el método anterior:

[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: Forzar eliminaciones de pods no espere la confirmación del kubelet de que el Pod ha sido cancelado.

Si incluso después de estos comandos, el pod está atascado en Unknown state, use el siguiente comando para eliminar el pod del clúster:

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

Confirme que el pod se ha eliminado:

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

Espero que encuentre útil este consejo de Kubernetes. Manténgase suscrito para obtener más consejos y tutoriales de DevOps .

Rakesh Jain
Profesional DevOps | RHCA | Jenkins | Git | ventana acoplable | Kubernetes | Ansible | Prometeo | Grafana | Nube de AWS

Linux
  1. Cómo implementar su primer pod en un clúster de Kubernetes

  2. Cómo eliminar una implementación de Kubernetes [Consejos rápidos de K8s]

  3. Cómo reiniciar pods en Kubernetes [Consejo rápido de K8s]

  4. Cómo leer nodos en Kubernetes [Consejo rápido de K8s]

  5. Cómo eliminar un servicio en Kubernetes

Cómo configurar el registro privado de Docker en Kubernetes (k8s)

Cómo eliminar líneas en Vim / Vi

Cómo crear un StatefulSet en Kubernetes

Cómo crear y administrar pods de Kubernetes en Linux

Cómo ver los registros de pods de Kubernetes con Kubectl

¿Por qué Kubernetes se llama K8?