|
| 1 | +--- |
| 2 | +title: Borrar un StatefulSet |
| 3 | +content_type: task |
| 4 | +weight: 60 |
| 5 | +--- |
| 6 | + |
| 7 | +<!-- overview --> |
| 8 | + |
| 9 | +Esta página muestra cómo se debe eliminar un {{< glossary_tooltip term_id="StatefulSet" >}}. |
| 10 | + |
| 11 | +## {{% heading "prerequisites" %}} |
| 12 | + |
| 13 | +- Se asume que se tiene una aplicación del tipo StatefulSet corriendo en tu clúster. |
| 14 | + |
| 15 | +<!-- steps --> |
| 16 | + |
| 17 | +## Borrando un StatefulSet |
| 18 | + |
| 19 | +Se puede eliminar un StatefulSet de la misma manera que se eliminan el resto de los recursos en Kubernetes: |
| 20 | +Usa el comando `kubectl delete` y especifica el StatefulSet, usando su nombre o el archivo con el que fue creado. |
| 21 | + |
| 22 | +```shell |
| 23 | +kubectl delete -f <archivo.yaml> |
| 24 | +``` |
| 25 | + |
| 26 | +```shell |
| 27 | +kubectl delete statefulsets <nombre-del-stateful-set> |
| 28 | +``` |
| 29 | + |
| 30 | +Puede suceder que necesites eliminar los servicios headless asociados después de eliminar el StatefulSet. |
| 31 | + |
| 32 | +```shell |
| 33 | +kubectl delete service <nombre-del-servicio> |
| 34 | +``` |
| 35 | + |
| 36 | +Cuando se elimina un StatefulSet utilizando `kubectl`, el StatefulSet escala a 0. |
| 37 | +Todos los Pods que eran parte de esta carga de trabajo son eliminados. Si tú quieres eliminar |
| 38 | +solo el StatefulSet y no los Pods utiliza `--cascade=orphan`. Por ejemplo: |
| 39 | + |
| 40 | +```shell |
| 41 | +kubectl delete -f <archivo.yaml> --cascade=orphan |
| 42 | +``` |
| 43 | + |
| 44 | +Agregando `--cascade=orphan` al comando `kubectl delete`, los Pods administrados por el StatefulSet |
| 45 | +dejan de pertenecer al StatefulSet cuando es eliminado. Si los pods tienen una |
| 46 | +etiqueta `app.kubernetes.io/name=MyApp` se los puede eliminar de la siguiente manera: |
| 47 | + |
| 48 | +```shell |
| 49 | +kubectl delete pods -l app.kubernetes.io/name=MyApp |
| 50 | +``` |
| 51 | + |
| 52 | +### Volúmenes Persistentes |
| 53 | + |
| 54 | +Eliminar los Pods de un StatefulSet no va a eliminar los volúmenes asociados. |
| 55 | +Esto es para asegurar que se tiene una oportunidad de copiar los datos fuera del volumen |
| 56 | +antes de eliminarlo. Borrar el PVC después de que los pods estén terminados puede disparar |
| 57 | +la eliminación del Volumen Persistente que hay detrás dependiendo de la clase de almacenamiento |
| 58 | +y la política de reclamo. Nunca debes asumir la capacidad de acceder a un volumen |
| 59 | +después de la eliminación del claim. |
| 60 | + |
| 61 | +{{< note >}} |
| 62 | +Ten cuidado al borrar un PVC ya que puede llevar una pérdida de datos. |
| 63 | +{{< /note >}} |
| 64 | + |
| 65 | +### Eliminación completa de un StatefulSet |
| 66 | + |
| 67 | +Para eliminar todo en un StatefulSet, incluyendo los pods asociados, |
| 68 | +se puede correr una serie de comandos similares a los siguientes: |
| 69 | + |
| 70 | +```shell |
| 71 | +grace=$(kubectl get pods <stateful-set-pod> --template '{{.spec.terminationGracePeriodSeconds}}') |
| 72 | +kubectl delete statefulset -l app.kubernetes.io/name=MyApp |
| 73 | +sleep $grace |
| 74 | +kubectl delete pvc -l app.kubernetes.io/name=MyApp |
| 75 | + |
| 76 | +``` |
| 77 | + |
| 78 | +En este ejemplo, los Pods tienen la etiqueta `app.kubernetes.io/name=MyApp`, |
| 79 | +sustituye la misma por tu propia etiqueta. |
| 80 | + |
| 81 | +### Forzar la eliminación de los Pods de un StatefulSet |
| 82 | + |
| 83 | +Si encuentras algunos pods bloqueados en tu StatefulSet en el estado 'Terminating' |
| 84 | +o 'Unknown' por un largo período de tiempo, puede ser que necesites intervenir |
| 85 | +manualmente para forzar la eliminación de los pods del apiserver. |
| 86 | +Ésta es una tarea potencialmente riesgosa. Visita [Forzar eliminación de Pods en StatefulSet](/docs/tasks/run-application/force-delete-stateful-set-pod/) |
| 87 | +para más detalles. |
| 88 | + |
| 89 | +## {{% heading "whatsnext" %}} |
| 90 | + |
| 91 | +Aprende más sobre [Forzar eliminación de Pods en StatefulSet](/docs/tasks/run-application/force-delete-stateful-set-pod/). |
0 commit comments