Add content/es/docs/concepts/workloads/pods/ephemeral-containers.md (#17195)
* added ephemeral-containers.md page * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Victor Morales <chipahuac@hotmail.com> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Rael Garcia <rael@rael.io> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Rael Garcia <rael@rael.io> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Rael Garcia <rael@rael.io> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Rael Garcia <rael@rael.io> * Update content/es/docs/concepts/workloads/pods/ephemeral-containers.md Co-Authored-By: Rael Garcia <rael@rael.io>
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
ef60d90397
commit
ba151d1815
@@ -0,0 +1,214 @@
|
|||||||
|
---
|
||||||
|
reviewers:
|
||||||
|
- astuky
|
||||||
|
- raelga
|
||||||
|
title: Containers Efímeros
|
||||||
|
content_template: templates/concept
|
||||||
|
weight: 80
|
||||||
|
---
|
||||||
|
|
||||||
|
{{% capture overview %}}
|
||||||
|
|
||||||
|
{{< feature-state state="alpha" >}}
|
||||||
|
|
||||||
|
Esta página proporciona una descripción general de los Containers efímeros: un tipo especial de Container
|
||||||
|
que se ejecuta temporalmente en un {{< glossary_tooltip text="Pod" term_id="pod" >}} ya existente para cumplir las
|
||||||
|
acciones iniciadas por el usuario, como por ejemplo, la solución de problemas. En vez de ser utilizadas para
|
||||||
|
crear aplicaciones, los Containers efímeros se utilizan para examinar los servicios.
|
||||||
|
|
||||||
|
{{< warning >}}
|
||||||
|
Los Containers efímeros se encuentran en una fase alfa inicial y no son aptos para clústers
|
||||||
|
de producción. Es de esperar que esta característica no funcione en algunas situaciones, por
|
||||||
|
ejemplo, al seleccionar los Namespaces de un Container. De acuerdo con la [Política de
|
||||||
|
Deprecación de Kubernetes](/docs/reference/using-api/deprecation-policy/), esta característica
|
||||||
|
alfa puede variar significativamente en el futuro o ser eliminada por completo.
|
||||||
|
{{< /warning >}}
|
||||||
|
|
||||||
|
{{% /capture %}}
|
||||||
|
|
||||||
|
{{% capture body %}}
|
||||||
|
|
||||||
|
## Entendiendo los Containers efímeros
|
||||||
|
|
||||||
|
{{< glossary_tooltip text="Pods" term_id="pod" >}} son el componente fundamental de las
|
||||||
|
aplicaciones de Kubernetes. Puesto que los Pods están previstos para ser desechables
|
||||||
|
y reemplazables, no se puede añadir un Container a un Pod una vez creado. Sin embargo, por lo
|
||||||
|
general se eliminan y se reemplazan los Pods de manera controlada utilizando
|
||||||
|
{{< glossary_tooltip text="Deployments" term_id="deployment" >}}.
|
||||||
|
|
||||||
|
En ocasiones es necesario examinar el estado de un Pod existente, como por ejemplo,
|
||||||
|
para poder solucionar un error difícil de reproducir. Puede ejecutar en estos casos
|
||||||
|
un Container efímero en un Pod ya existente para examinar su estado y para ejecutar
|
||||||
|
comandos de manera arbitraria.
|
||||||
|
|
||||||
|
### Qué es un Container efímero?
|
||||||
|
|
||||||
|
Los Containers efímeros se diferencian de otros Containers en que no garantizan ni los
|
||||||
|
recursos ni la ejecución, y en que nunca se reiniciarán automáticamente, de modo que no
|
||||||
|
son aptos para la construcción de aplicaciones. Los Containers efímeros se describen
|
||||||
|
usando la misma [ContainerSpec](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#container-v1-core) que los Containers regulares, aunque muchos campos son
|
||||||
|
incompatibles y no están habilitados para los Containers efímeros.
|
||||||
|
|
||||||
|
- Los Containers efímeros no pueden tener puertos, por lo que campos como `ports`,
|
||||||
|
`livenessProbe`, `readinessProbe` no están habilitados.
|
||||||
|
- Las asignaciones de recursos del Pod son inmutables, por lo que no esta habilitado
|
||||||
|
configurar "resources".
|
||||||
|
- Para obtener una lista completa de los campos habilitados, consulte la documentación
|
||||||
|
de referencia [EphemeralContainer] (/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#ephemeralcontainer-v1-core).
|
||||||
|
|
||||||
|
En vez de añadirlos de forma directa al `pod.spec`, los Containers efímeros se crean usando un
|
||||||
|
controlador especial de la API, `ephemeralcontainers`, por lo tanto no es posible añadir un
|
||||||
|
Container efímero utilizando `kubectl edit`.
|
||||||
|
|
||||||
|
Al igual en el caso de los Containers regulares, no se puede modificar o remover un Container
|
||||||
|
efímero después de haberlo agregado a un Pod.
|
||||||
|
|
||||||
|
## Casos de uso para los Containers efímeros
|
||||||
|
|
||||||
|
Los Containers efímeros resultan útiles para la solución interactiva de incidencias cuando
|
||||||
|
`kubectl exec` es insuficiente tanto porque un container se ha caído, como porque la imagen de un
|
||||||
|
Container no incluye las utilidades de depuración.
|
||||||
|
|
||||||
|
En particular, las [imágenes distroless](https://github.com/GoogleContainerTools/distroless)
|
||||||
|
le permiten desplegar imágenes de Containers mínimos que disminuyen la superficie de ataque
|
||||||
|
y la exposición a errores y vulnerabilidades. Ya que las imágenes distroless no contienen un
|
||||||
|
shell ni ninguna utilidad de depuración, resulta difícil solucionar los problemas de las imágenes
|
||||||
|
distroless usando solamente `kubectl exec`.
|
||||||
|
|
||||||
|
Cuando utilice Containers efímeros, es conveniente habilitar el [proceso Namespace de uso
|
||||||
|
compartido](/docs/tasks/configure-pod-container/share-process-namespace/) para poder ver los
|
||||||
|
procesos en otros containers.
|
||||||
|
|
||||||
|
### Ejemplos
|
||||||
|
|
||||||
|
{{< note >}}
|
||||||
|
Los ejemplos de esta sección requieren que los `EphemeralContainers` [feature
|
||||||
|
gate](/docs/reference/command-line-tools-reference/feature-gates/) estén habilitados
|
||||||
|
y que tanto el cliente como el servidor de Kubernetes tengan la version v1.16 o posterior.
|
||||||
|
{{< /note >}}
|
||||||
|
|
||||||
|
En los ejemplos de esta sección muestran la forma en que los Containers efímeros se
|
||||||
|
presentan en la API. Los usuarios normalmente usarían un plugin `kubectl` para la solución
|
||||||
|
de problemas que automatizaría estos pasos.
|
||||||
|
|
||||||
|
Los Containers efímeros son creados utilizando el subrecurso `ephemeralcontainers` del Pod,
|
||||||
|
que puede ser visto utilizando `kubectl --raw`. En primer lugar describa el Container
|
||||||
|
efímero a añadir como una lista de `EphemeralContainers`:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"apiVersion": "v1",
|
||||||
|
"kind": "EphemeralContainers",
|
||||||
|
"metadata": {
|
||||||
|
"name": "example-pod"
|
||||||
|
},
|
||||||
|
"ephemeralContainers": [{
|
||||||
|
"command": [
|
||||||
|
"sh"
|
||||||
|
],
|
||||||
|
"image": "busybox",
|
||||||
|
"imagePullPolicy": "IfNotPresent",
|
||||||
|
"name": "debugger",
|
||||||
|
"stdin": true,
|
||||||
|
"tty": true,
|
||||||
|
"terminationMessagePolicy": "File"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Para actualizar los Containers efímeros de los `example-pod` en ejecución:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl replace --raw /api/v1/namespaces/default/pods/example-pod/ephemeralcontainers -f ec.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Esto devolverá una nueva lista de Containers efímeros:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"kind":"EphemeralContainers",
|
||||||
|
"apiVersion":"v1",
|
||||||
|
"metadata":{
|
||||||
|
"name":"example-pod",
|
||||||
|
"namespace":"default",
|
||||||
|
"selfLink":"/api/v1/namespaces/default/pods/example-pod/ephemeralcontainers",
|
||||||
|
"uid":"a14a6d9b-62f2-4119-9d8e-e2ed6bc3a47c",
|
||||||
|
"resourceVersion":"15886",
|
||||||
|
"creationTimestamp":"2019-08-29T06:41:42Z"
|
||||||
|
},
|
||||||
|
"ephemeralContainers":[
|
||||||
|
{
|
||||||
|
"name":"debugger",
|
||||||
|
"image":"busybox",
|
||||||
|
"command":[
|
||||||
|
"sh"
|
||||||
|
],
|
||||||
|
"resources":{
|
||||||
|
|
||||||
|
},
|
||||||
|
"terminationMessagePolicy":"File",
|
||||||
|
"imagePullPolicy":"IfNotPresent",
|
||||||
|
"stdin":true,
|
||||||
|
"tty":true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Se puede ver el estado del Container efímero creado usando `kubectl describe`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl describe pod example-pod
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
...
|
||||||
|
Ephemeral Containers:
|
||||||
|
debugger:
|
||||||
|
Container ID: docker://cf81908f149e7e9213d3c3644eda55c72efaff67652a2685c1146f0ce151e80f
|
||||||
|
Image: busybox
|
||||||
|
Image ID: docker-pullable://busybox@sha256:9f1003c480699be56815db0f8146ad2e22efea85129b5b5983d0e0fb52d9ab70
|
||||||
|
Port: <none>
|
||||||
|
Host Port: <none>
|
||||||
|
Command:
|
||||||
|
sh
|
||||||
|
State: Running
|
||||||
|
Started: Thu, 29 Aug 2019 06:42:21 +0000
|
||||||
|
Ready: False
|
||||||
|
Restart Count: 0
|
||||||
|
Environment: <none>
|
||||||
|
Mounts: <none>
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Se puede conectar al nuevo Container efímero usando `kubectl attach`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl attach -it example-pod -c debugger
|
||||||
|
```
|
||||||
|
|
||||||
|
Si el proceso Namespace de uso compartido está habilitado, se pueden visualizar los procesos de todos los Containers de ese Pod.
|
||||||
|
Por ejemplo, después de haber conectado, ejecute `ps` en el debugger del container:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ps auxww
|
||||||
|
```
|
||||||
|
La respuesta es semejante a:
|
||||||
|
```
|
||||||
|
PID USER TIME COMMAND
|
||||||
|
1 root 0:00 /pause
|
||||||
|
6 root 0:00 nginx: master process nginx -g daemon off;
|
||||||
|
11 101 0:00 nginx: worker process
|
||||||
|
12 101 0:00 nginx: worker process
|
||||||
|
13 101 0:00 nginx: worker process
|
||||||
|
14 101 0:00 nginx: worker process
|
||||||
|
15 101 0:00 nginx: worker process
|
||||||
|
16 101 0:00 nginx: worker process
|
||||||
|
17 101 0:00 nginx: worker process
|
||||||
|
18 101 0:00 nginx: worker process
|
||||||
|
19 root 0:00 /pause
|
||||||
|
24 root 0:00 sh
|
||||||
|
29 root 0:00 ps auxww
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% /capture %}}
|
||||||
Reference in New Issue
Block a user