Skip to content

Commit 6ceae5e

Browse files
committed
added [ES] translated finalizer glossary item + concept page
1 parent c44bdb2 commit 6ceae5e

File tree

2 files changed

+123
-0
lines changed

2 files changed

+123
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
title: Finalizadores
3+
content_type: concept
4+
weight: 80
5+
---
6+
7+
<!-- overview -->
8+
9+
{{<glossary_definition term_id="finalizer" length="long">}}
10+
11+
Puedes usar finalizadores para controlar {{<glossary_tooltip text="garbage collection" term_id="garbage-collection">}}
12+
de los recursos alertando a los controladores para que ejecuten tareas de limpieza especificas antes de eliminar el recurso.
13+
14+
Los finalizadores usualmente no especifican codigo a ejecutar, sino que son generalmente listas de parametros referidos a
15+
un recurso especifico, similares a las anotaciones. Kubernetes especifica algunos finalizadores automaticamente,
16+
pero podrías especificar tus propios.
17+
18+
## Cómo funcionan los finalizadores
19+
20+
Cuando creas un recurso utilizando un archivo de manifiesto, puedes especificar
21+
finalizadores mediante el campo `metadata.finalizers`. Cuando intentas eliminar el
22+
recurso, el servidor API que maneja el pedido de eliminación ve los valores en el
23+
campo `finalizadores` y hace lo siguiente:
24+
25+
* Modifica el objecto para agregar un campo `metadata.deletionTimestamp` con
26+
el momento en que comenzaste la eliminación.
27+
* Previene que el objeto sea eliminado hasta que su campo `metadata.finalizers`
28+
este vacío.
29+
* Retorna un codigo de estado `202` (HTTP "Aceptado")
30+
31+
El controlador que meneja ese finalizador recibe la actualización del objecto
32+
configurando el campo `metadata.deletionTimestamp`, indicando que la eliminación
33+
del objeto ha sido solicitada.
34+
El controlador luego intenta satisfacer los requerimientos de los finalizadores
35+
especificados para ese recurso. Cada vez que una condición del finalizador es
36+
satisfecha, el controlador remueve ese parametro del campo `finalizadores`. Cuando
37+
el campo `finalizadores` esta vacío, un objeto con un campo `deletionTimestamp`
38+
configurado es automaticamente borrado. Puedes tambien utilizar finalizadores para
39+
prevenir el borrado de recursos no manejados.
40+
41+
Un ejemplo usual de un finalizador es `kubernetes.io/pv-protection`, el cual
42+
previene el borrado accidental de objetos `PersistentVolume`. Cuando un objeto
43+
`PersistentVolume` está en uso por un Pod, Kubernetes agrega el finalizador
44+
`pv-protection`. Si intentas elimiar el `PersistentVolume`, este pasa a un estado
45+
`Terminating`, pero el controlador no puede eliminarlo ya que existe el finalizador.
46+
Cuando el Pod deja de utilizar el `PersistentVolume`, Kubernetes borra el finalizador
47+
`pv-protection` y el controlador borra el volumen.
48+
49+
## Referencias de dueño, etiquetas y finalizadores (#dueños-etiquetas-finalizadores)
50+
51+
Al igual que las {{<glossary_tooltip text="etiquetas" term_id="label">}}, las
52+
[referencias de dueño](/docs/concepts/overview/working-with-objects/owners-dependents/)
53+
describen las relaciones entre objetos en Kubernetes, pero son utilizadas para un
54+
propósito diferente. Cuando un
55+
{{<glossary_tooltip text="controlador" term_id="controller">}} maneja objetos como
56+
Pods, utiliza etiquetas para identificar cambios a grupos de objetos relacionados.
57+
Por ejemplo, cuando un {{<glossary_tooltip text="Job" term_id="job">}} crea uno
58+
o más Pods, el controlador del Job agrega etiquetas a esos pods para identificar cambios
59+
a cualquier Pod en el cluster con la misma etiqueta.
60+
61+
El controlador del Job tambien agrega *referencias de dueño* a esos Pods, referidas
62+
al Job que creo a los Pods. Si borras el Job mientras estos Pods estan corriendo,
63+
Kubernetes utiliza las referencias de dueño (no las etiquetas) para determinar
64+
cuáles Pods en el cluster deberían ser borrados.
65+
66+
Kubernetes también procesa finalizadores cuando identifica referencias de dueño en
67+
un recurso que ha sido marcado para eliminación.
68+
69+
En algunas situaciones, los finalizadores pueden bloquear el borrado de objetos
70+
dependientes, causando que el objeto inicial a borrar permanezca más de lo
71+
esperado sin ser completamente eliminado. En esas situaciones, deberías chequear
72+
finalizadores y referencias de dueños en los objetos y sus dependencias para
73+
intentar solucionarlo.
74+
75+
{{<note>}}
76+
En casos donde los objetos queden bloqueados en un estado de eliminación, evita
77+
borrarlos manualmente para que el proceso continue. Los finalizadores usualmente
78+
son agregados a los recursos por una razón, por lo cual eliminarlos forzosamente
79+
puede causar problemas en tu cluster. Borrados manuales sólo deberían ejecutados
80+
cuando el propósito del finalizador es entendido y satisfecho de alguna otra manera (por
81+
ejemplo, borrando manualmente un objeto dependiente).
82+
{{</note>}}
83+
84+
## {{% heading "whatsnext" %}}
85+
86+
* Lea [Using Finalizers to Control Deletion](/blog/2021/05/14/using-finalizers-to-control-deletion/)
87+
en el blog de Kubernetes.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: Finalizador
3+
id: finalizer
4+
date: 2021-07-07
5+
full_link: /docs/concepts/overview/working-with-objects/finalizers/
6+
short_description: >
7+
Un atributo de un namespace que dicta a Kubernetes a esperar hasta que condiciones
8+
especificas son satisfechas antes que pueda borrar un objeto marcado para eliminacion.
9+
aka:
10+
tags:
11+
- fundamental
12+
- operation
13+
---
14+
Los finalizadores son atributos de un namespace que dictan a Kubernetes a
15+
esperar a que ciertas condiciones sean satisfechas antes que pueda borrar
16+
definitivamente un objeto que ha sido marcado para eliminarse.
17+
Los finalizadores alertan a los {{<glossary_tooltip text="controladores" term_id="controller">}}
18+
para borrar recursos que poseian esos objetos eliminados.
19+
20+
<!--more-->
21+
22+
Cuando instruyes a Kubernetes a borrar un objeto que tiene finalizadores
23+
especificados, la API de Kubernetes marca ese objeto para eliminacion
24+
configurando el campo `metadata.deletionTimestamp`, y retorna un codigo de
25+
estado `202` (HTTP "Aceptado").
26+
El objeto a borrar permanece en un estado
27+
de terminacion mientras el plano de contol, u otros componentes, ejecutan
28+
las acciones definidas en los finalizadores.
29+
Luego de que esas acciones son completadas, el controlador borra los
30+
finalizadores relevantes del objeto. Cuando el campo `metadata.finalizers`
31+
esta vacio, Kubernetes considera el proceso de eliminacion completo y borra
32+
el objeto.
33+
34+
Puedes utilizar finalizadores para controlar {{<glossary_tooltip text="garbage collection" term_id="garbage-collection">}}
35+
de recursos. Por ejemplo, puedes definir un finalizador para borrar recursos
36+
relacionados o infraestructura antes que el controlador elimine el objeto.

0 commit comments

Comments
 (0)