Skip to content

Commit 858d90a

Browse files
Apply suggestions from code review
commit of suggestions made by electrocucaracha Co-authored-by: Victor Morales <[email protected]>
1 parent 2eb10e9 commit 858d90a

File tree

1 file changed

+64
-75
lines changed

1 file changed

+64
-75
lines changed

content/es/docs/concepts/workloads/pods/disruptions.md

Lines changed: 64 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -13,142 +13,134 @@ aplicaciones con alta disponibilidad y que necesitan entender
1313
que tipos de interrupciones pueden suceder en los Pods.
1414

1515
También es para los administradores de clústers que quieren aplicar acciones
16-
automáticas en sus clústers, cómo actualizar o autoescalar los clústers.
16+
automatizadas en sus clústers, cómo actualizar o autoescalar los clústers.
1717

1818
<!-- body -->
1919

2020
## Interrupciones voluntarias e involuntarias
2121

22-
Los pods no desaparecen hasta que algo (una persona o un controlador) los destruye
23-
ó hay problemas de hardware ó del software que son inevitables.
22+
Los Pods no desaparecen hasta que algo (una persona o un controlador) los destruye
23+
ó hay problemas de hardware ó software que son inevitables.
2424

2525
Nosotros llamamos a esos casos inevitables *interrupciones involuntarias* de
2626
una aplicación. Algunos ejemplos:
2727

28-
- Una falla en en hardware de la máquina física del nodo
28+
- Una falla en hardware de la máquina física del nodo
2929
- Un administrador del clúster borra una VM (instancia) por error
30-
- El proveedor cloud o el hypervisor falla y hace desaparecer la VM
30+
- El proveedor de la nube o el hipervisor falla y hace desaparecer la VM
3131
- Un kernel panic
3232
- El nodo desaparece del clúster por un problema de red que lo separa del clúster
33-
- Una remoción del pod porque el nodo esta [sin-recursos-suficientes](/docs/concepts/scheduling-eviction/node-pressure-eviction/).
33+
- Una remoción del Pod porque el nodo [no tiene recursos suficientes](/docs/concepts/scheduling-eviction/node-pressure-eviction/).
3434

35-
A excepción de la condición sin-recursos-suficientes, todas estas condiciones
35+
A excepción de la condición sin recursos suficientes, todas estas condiciones
3636
deben ser familiares para la mayoría de los usuarios, no son específicas
3737
de Kubernetes
3838

3939
Nosotros llamamos a los otros casos *interrupciones voluntarias*. Estas incluyen
4040
las acciones iniciadas por el dueño de la aplicación y aquellas iniciadas por el Administrador
4141
del Clúster. Las acciones típicas de los dueños de la aplicación incluye:
4242

43-
- borrar el deployment o otro controlador que maneja el pod
44-
- actualizar el deployment del pod que causa un reinicio
45-
- borrar un pod (por ejemplo por accidente)
43+
- borrar el Deployment u otro controlador que maneja el Pod
44+
- actualizar el Deployment del Pod que causa un reinicio
45+
- borrar un Pod (por ejemplo, por accidente)
4646

4747
Las acciones del administrador del clúster incluyen:
4848

49-
- [Drenar un nodo](/docs/tasks/administer-clúster/safely-drain-node/) para reparar o actualizar.
49+
- [Drenar un nodo](/docs/tasks/administer-cluster/safely-drain-node/) para reparar o actualizar.
5050
- Drenar un nodo del clúster para reducir el clúster (aprenda acerca de [Autoescalamiento de Clúster](https://github.com/kubernetes/autoscaler/#readme)
5151
).
52-
- Remover un pod de un nodo para permitir que otra cosa pueda ingresar a ese nodo.
52+
- Remover un Pod de un nodo para permitir que otra cosa pueda ingresar a ese nodo.
5353

5454
Estas acciones pueden ser realizadas directamente por el administrador del clúster, por
55-
tareas automaticas del administrador del clúster ó por el proveedor del clúster.
56-
```Si puden revisar esta frase de arriba sería muy bueno, no me gusta como ha quedado```
55+
tareas automatizadas del administrador del clúster ó por el proveedor del clúster.
5756

58-
Consulte al administrador de su clúster, a su proveedor cloud ó la documentación de su distribución
57+
Consulte al administrador de su clúster, a su proveedor de la nube ó a la documentación de su distribución
5958
para determinar si alguna de estas interrupciones voluntarias están habilitadas en su clúster.
60-
Si no estan habilitadas, puede saltear la creación del presupuesto de Interrupción de Pods.
61-
```Si puden revisar esta frase de arriba sería muy bueno, no me gusta como ha quedado```
59+
Si ninguna se encuentra habilitada, puede omitir la creación del presupuesto de Interrupción de Pods.
6260

6361
{{< caution >}}
6462
No todas las interrupciones voluntarias son consideradas por el presupuesto de interrupción de Pods. Por ejemplo,
65-
borrar un deployment o pods que evitan el uso del presupuesto.
63+
borrar un Deployment o Pods que evitan el uso del presupuesto.
6664
{{< /caution >}}
6765

6866
## Tratando con las interrupciones
6967

7068
Estas son algunas de las maneras para mitigar las interrupciones involuntarias:
7169

72-
- Asegurarse que el pod [solicite los recursos](/docs/tasks/configure-pod-container/assign-memory-resource) que necesita.
73-
- Replique su aplicación su usted necesita alta disponiblidad. (Aprenda sobre correr aplicaciones replicadas
70+
- Asegurarse que el Pod [solicite los recursos](/docs/tasks/configure-pod-container/assign-memory-resource) que necesita.
71+
- Replique su aplicación si usted necesita alta disponibilidad. (Aprenda sobre correr aplicaciones replicadas
7472
[stateless](/docs/tasks/run-application/run-stateless-application-deployment/)
7573
y [stateful](/docs/tasks/run-application/run-replicated-stateful-application/)
76-
- Incluso, para alta disponiblidad cuando corre aplicaciones replicadas,
77-
extendia aplicaciones por varios racks (usando
74+
- Incluso, para una alta disponibilidad mayor cuando se corren aplicaciones replicadas,
75+
propague las aplicaciones por varios racks (usando
7876
[anti-affinity](/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity))
7977
o usando zonas (si usa un [clúster multi-zona](/docs/setup/multiple-zones).)
8078

8179
La frecuencia de las interrupciones voluntarias varía. En un clúster basico de Kubernetes, no hay
82-
interrupciones voluntarias automáticas (solo el usuario las genera). Sin embargo, su administrador del clúster o proveedor de hosting
80+
interrupciones voluntarias automáticas (solo el usuario las genera). Sin embargo, su administrador del clúster o proveedor de alojamiento
8381
puede correr algun servicio adicional que pueda causar estas interrupciones voluntarias. Por ejemplo,
8482
desplegando una actualización de software en los nodos puede causar interrupciones. También, algunas implementaciones
8583
de clústers con autoescalamiento de nodos puede causar interrupciones para defragmentar o compactar los nodos.
86-
Su administrador de clúster o proveedor de hosting debe tener documentado cuál es el nivel de interrupciones
87-
voluntarias esperadas, sí las hay. Ciertas opciones de configuración, como ser
84+
Su administrador de clúster o proveedor de alojamiento debe tener documentado cuál es el nivel de interrupciones
85+
voluntarias esperadas, sí es que las hay. Ciertas opciones de configuración, como ser
8886
[usar PriorityClasses](/docs/concepts/scheduling-eviction/pod-priority-preemption/)
89-
en las spec de su pod pueden tambien causar interrupciones voluntarias (o involuntarias).
87+
en las especificaciones de su Pod pueden también causar interrupciones voluntarias (o involuntarias).
9088

9189

9290
## Presupuesto de Interrupción de Pods
9391

9492
{{< feature-state for_k8s_version="v1.21" state="stable" >}}
9593

9694
Kubernetes ofrece carácteristicas para ayudar a ejecutar aplicaciones con alta disponibliidad, incluso cuando usted
97-
introduce frecuentes interrupciones voluntarias.
95+
introduce interrupciones voluntarias frecuentes.
9896

99-
```Necesito que me digan si aca ponemos en ingles PodDisruptionBudget o se hace la tradución```
100-
Como dueño de la aplicación, usted puede crear un presupuesto de interrupcion de pods (PDB por su sigla en inglés) para cada aplicación.
101-
Un PDB limita el numero de Pods de una aplicación replicada, que estan caídos de manera simultánea por
97+
Como dueño de la aplicación, usted puede crear un presupuesto de interrupción de Pods (PDB por sus siglas en inglés) para cada aplicación.
98+
Un PDB limita el numero de Pods de una aplicación replicada, que estan caídos de manera simultánea por
10299
interrupciones voluntarias. Por ejemplo, una aplicación basada en quórum puede
103100
asegurarse que el número de réplicas corriendo nunca es menor al
104-
número necesitado para obtener el quórum. Un front de una web puede querer
101+
número necesitado para obtener el quórum. Una web de tipo front end puede querer
105102
asegurarse que el número de réplicas atendiendo al tráfico nunca puede caer bajo un cierto
106103
porcentaje del total.
107104

108105
Los administradores del clúster y proveedores de hosting pueden usar herramientas que
109-
repeten el presupuesto de interrupción de pods utilizando la [API de Desalojo](/docs/tasks/administer-clúster/safely-drain-node/#eviction-api)
110-
en vez de directamente borrar pods o deployments.
106+
respeten el presupuesto de interrupción de Pods utilizando la [API de Desalojo](/docs/tasks/administer-clúster/safely-drain-node/#eviction-api)
107+
en vez de directamente borrar Pods o Deployments.
111108

112109
Por ejemplo, el subcomando `kubectl drain` le permite marcar un nodo a un modo fuera de
113110
servicio. Cuando se ejecuta `kubectl drain`, la herramienta trata de quitar a todos los Pods en
114-
el nodo que se esta dejando fuera de servicio. El pedido de desalojo que `kubectl` solicita en
111+
el nodo que se esta dejando fuera de servicio. La petición de desalojo que `kubectl` solicita en
115112
su nombre puede ser temporalmente denegado, entonces la herramienta periodicamente reintenta todas las
116113
peticiones fallidas hasta que todos los Pods en el nodo afectado son terminados ó hasta que el tiempo de espera,
117114
que puede ser configurado, es alcanzado.
118115

119-
Un PDB especifica el número de réplicas que una aplicación puede tener, relativo a cuantos
116+
Un PDB especifica el número de réplicas que una aplicación puede tolerar, relativo a cuantas
120117
se pretende tener. Por ejemplo, un Deployment que tiene un `.spec.replicas: 5` se
121-
supone que tiene 5 pods en cualquier momento. Si su PDB permite tener 4 por a la vez,
122-
entonces la API de Desalojo va a permitir interrupciones voluntarias a uno (pero no a dos) pods.
118+
supone que tiene 5 Pods en cualquier momento. Si su PDB permite tener 4 a la vez,
119+
entonces la API de Desalojo va a permitir interrupciones voluntarias de un (pero no a dos) Pod a la vez.
123120

124-
El grupo de pods que comprende a la aplicación esta especificada usando una etiqueta selectora, la mismma
121+
El grupo de Pods que comprende a la aplicación esta especificada usando una etiqueta selectora, la misma
125122
que es usada por el controlador de aplicación (deployment, stateful-set, etc).
126123

127-
```No puedo darle sentido a estas lineas, necesito ayuda```
128-
The "intended" number of pods is computed from the `.spec.replicas` of the workload resource
129-
that is managing those pods. The control plane discovers the owning workload resource by
130-
examining the `.metadata.ownerReferences` of the Pod.
124+
El numero de Pods "deseado" es calculado a partir de `.spec.replicas` de el recurso de Workload
125+
que es manejado para esos Pods. El plano de control descubre el recurso Workload perteneciente a el
126+
examinando las `.metadata.ownerReferences` del Pod.
131127

132128
Las [Interrupciones Involuntarias](#voluntary-and-involuntary-disruptions) no pueden ser prevenidas por los PDB; pero si
133-
son contabilizadas contra este presupuesto.
129+
son contabilizadas a partir este presupuesto.
134130

135-
Los Pods que son borrados o no estan disponibles por una actualización continua de una aplicación cuentan
136-
contra el presupuesto de interrupciones, pero los recursos de trabajo (como los Deployments y StatefulSet)
137-
no están limitados por los PDBs cuando hacen actualizaciones continuas. En cambio, el manejo de fallas
138-
mientras dura la actualización de la aplicación es configurado en el spec de este recurso específico.
139-
```La ultima frase de arriba no me gusta como queda, quisiera agregar algo como que el rollout no se contabiliza, pero no se si es correcto
140-
o hace falta```
131+
Los Pods que son borrados o no estan disponibles debido a una actualización continua de una aplicación forman parte del presupuesto de interrupciones, pero los recursos Workload (como los Deployments y StatefulSet)
132+
no están limitados por los PDBs cuando se hacen actualizaciones continuas. En cambio, la administración de fallas
133+
durante la actualización de la aplicación es configurada en la especificación para este recurso Workload específico.
141134

142-
Cuando un pod es quitado usando la API de desarolojo, este es
135+
Cuando un Pod es quitado usando la API de desalojo, este es
143136
[terminado](/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination) correctamente, haciendo honor al
144137
`terminationGracePeriodSeconds` configurado en su [PodSpec](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#podspec-v1-core).
145-
```Arriba no hago la traducción de PodeSpec porque no se si sería necesario```
146138

147139
## Ejemplo de Presupuesto de Interrupción de POD {#pdb-example}
148140

149141
Considere un clúster con 3 nodos, `nodo-1` hasta `nodo-3`.
150142
El clúster esta corriendo varias aplicaciones. Uno de ellos tiene 3 replicas, que llamaremos
151-
`pod-a`, `pod-b`, and `pod-c`. Otro pod no relacionado y sin PDB, llamado `pod-x`, tambien se muestra.
143+
`pod-a`, `pod-b`, y `pod-c`. Otro Pod no relacionado y sin PDB, llamado `pod-x`, también se muestra.
152144

153145
Inicialmente los pods estan distribuidos de esta manera:
154146

@@ -158,28 +150,25 @@ Inicialmente los pods estan distribuidos de esta manera:
158150
| pod-a *available* | pod-b *available* | pod-c *available* |
159151
| pod-x *available* | | |
160152

161-
Los 3 pods son parte de un deployment, ellos colectivamente tienen un PDB que requiere
162-
que por lo menos 2 de los 3 pods esten disponibles todo el tiempo.
153+
Los 3 Pods son parte de un Deployment, ellos colectivamente tienen un PDB que requiere
154+
que por lo menos 2 de los 3 Pods esten disponibles todo el tiempo.
163155

164156
Por ejemplo, supongamos que el administrador del clúster quiere reiniciar para actualizar el kernel y arreglar un bug.
165157
El administrador del clúster primero intenta desocupar el `nodo-1` usando el comando `kubectl drain`.
166158
La herramienta intenta desalojar a los pods `pod-a` y `pod-x`. Esto tiene éxito inmediatamente.
167-
Ambos pods van al estado `terminating` al mismo tiempo.
159+
Ambos Pods van al estado `terminating` al mismo tiempo.
168160
Pone al clúster en el siguiente estado:
169161

170162
| nodo-1 *desalojando* | nodo-2 | nodo-3 |
171163
|:--------------------:|:-------------------:|:------------------:|
172164
| pod-a *terminating* | pod-b *available* | pod-c *available* |
173165
| pod-x *terminating* | | |
174166

175-
El deployment detecta que uno de los pods esta terminando, entonces crea un reemplazo
167+
El Deployment detecta que uno de los Pods esta terminando, entonces crea un reemplazo
176168
llamado `pod-d`. Como el `nodo-1` esta bloqueado, el pod termina en otro nodo. Algo más, adicionalmente
177169
a creado el pod `pod-y` como un reemplazo del `pod-x` .
178170

179-
```Necesita revisión```
180-
(Note: for a StatefulSet, `pod-a`, which would be called something like `pod-0`, would need
181-
to terminate completely before its replacement, which is also called `pod-0` but has a
182-
different UID, could be created. Otherwise, the example applies to a StatefulSet as well.)
171+
(Nota: para un StatefulSet, `pod-a`, el cual debería ser llamado algo como `pod-0`, necesitaría ser terminado completamente antes de su remplazo, el cual también es llamado `pod-0` pero tiene un UID diferente, podría ser creado. De lo contrario, el ejemplo también aplica a un StatefulSet.)
183172

184173
Ahora el clúster esta en este estado:
185174

@@ -188,16 +177,16 @@ Ahora el clúster esta en este estado:
188177
| pod-a *terminating* | pod-b *available* | pod-c *available* |
189178
| pod-x *terminating* | pod-d *starting* | pod-y |
190179

191-
En algún punto, los pods finalizan y el clúster se ve de esta forma:
180+
En algún punto, los Pods finalizan y el clúster se ve de esta forma:
192181

193182
| nodo-1 *desalojado* | nodo-2 | nodo-3 |
194183
|:--------------------:|:-------------------:|:------------------:|
195184
| | pod-b *available* | pod-c *available* |
196185
| | pod-d *starting* | pod-y |
197186

198-
En este estado, si un administrador del clúster impaciente intenta desalojar el `nodo-2` ó al
199-
`nodo-3`, el comando drain va a ser bloqueado, porque hay solamente 2 pods disponibles para
200-
el deployment y el PDB requiere por lo menos 2. Después de pasado un tiempo el `pod-d` esta disponible.
187+
En este estado, si un administrador del clúster impaciente intenta desalojar el `nodo-2` ó el
188+
`nodo-3`, el comando drain va a ser bloqueado, porque hay solamente 2 Pods disponibles para
189+
el Deployment y el PDB requiere por lo menos 2. Después de pasado un tiempo el `pod-d` esta disponible.
201190

202191
El estado del clúster ahora se ve así:
203192

@@ -207,12 +196,12 @@ El estado del clúster ahora se ve así:
207196
| | pod-d *available* | pod-y |
208197

209198
Ahora, el administrador del clúster desaloja el `nodo-2`.
210-
El comando drain tratará de desalojar a los 2 pods con algún orden, digamos
199+
El comando drain tratará de desalojar a los 2 Pods con algún orden, digamos
211200
primero el `pod-b` y después el `pod-d`. Va a tener éxito en quitar el `pod-b`.
212-
Pero cuando intente desalojar al `pod-d`, va a ser rechazado porque esto va a dejar solamente
213-
un pod disponible para el deployment.
201+
Pero cuando intente desalojar al `pod-d`, va a ser rechazado porque esto va a dejar
202+
un Pod solamente disponible para el Deployment.
214203

215-
El deployment crea un reemplazo para el `pod-b` llamando `pod-e`.
204+
El Deployment crea un reemplazo para el `pod-b` llamado `pod-e`.
216205
Porque no hay recursos suficientes disponibles en el clúster para programar
217206
el `pod-e` el desalojo será bloqueado nuevamente. El clúster va a terminar en este
218207
estado:
@@ -223,9 +212,9 @@ estado:
223212
| | pod-d *available* | pod-y | |
224213

225214
Ahora, el administrador del clúster necesita
226-
agregar un nodo de nuevo en el clúster para continuar con la actualización.
215+
agregar un nuevo nodo en el clúster para continuar con la actualización.
227216

228-
Ustede puede ver como Kubernetes varia la tasa a la que las interrupciones
217+
Usted puede ver como Kubernetes varia la tasa a la que las interrupciones
229218
pueden suceder, en función de:
230219

231220
- cuantas réplicas una aplicación necesita
@@ -245,18 +234,18 @@ puede tener sentido en estos escenarios:
245234
hay una especialización natural de roles
246235
- Cuando una herramienta de terceros o servicio es usado para automatizar el control del clúster
247236

248-
El presupuesto de interrupción de pods soporta esta separación de roles, proveyendo
249-
una interface entre los roles.
237+
El presupuesto de interrupción de Pods soporta esta separación de roles, ofreciendo
238+
una interfaz entre los roles.
250239

251240
Si no se tiene tal separación de responsabilidades en la organización,
252241
posiblemente no se necesite el Presupuesto de Interrupción de Pods.
253242

254243
## Como realizar Acciones Disruptivas en el Clúster
255244

256245
Si usted es el Administrador del Clúster y necesita realizar una acción disruptiva en todos
257-
los nodos en el clúster, como ser un upgrade de nodo o de software, estas son algunas de las opciones:
246+
los nodos en el clúster, como ser una actualización de nodo o de software, estas son algunas de las opciones:
258247

259-
- Aceptar el tiempo sin funcionar mientras dura el upgrade.
248+
- Aceptar el tiempo sin funcionar mientras dura la actualización.
260249
- Conmutar a otra replica completa del clúster.
261250
- No hay tiempo sin funcionar, pero puede ser costoso tener duplicados los nodos
262251
y tambien un esfuerzo humano para orquestar dicho cambio.
@@ -278,6 +267,6 @@ los nodos en el clúster, como ser un upgrade de nodo o de software, estas son a
278267

279268
* Aprenda más sobre [desalojar nodos](/docs/tasks/administer-clúster/safely-drain-node/)
280269

281-
* Aprenda sobre [actualizar un deployment](/docs/concepts/workloads/controllers/deployment/#updating-a-deployment)
270+
* Aprenda sobre [actualizar un Deployment](/docs/concepts/workloads/controllers/deployment/#updating-a-deployment)
282271
incluyendo los pasos para mantener su disponibilidad mientras dura la actualización.
283272

0 commit comments

Comments
 (0)