Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add content/es/docs/concepts/workloads/pods/podpreset.md #17265

Merged
merged 12 commits into from Nov 18, 2019
Merged
95 changes: 95 additions & 0 deletions content/es/docs/concepts/workloads/pods/podpreset.md
@@ -0,0 +1,95 @@
---
reviewers:
- raelga
title: Pod Preset
content_template: templates/concept
weight: 50
---

{{% capture overview %}}
Esta página provee una descripción general de los PodPresets, los cuales son
kararade marked this conversation as resolved.
Show resolved Hide resolved
los objetos que se utilizan para inyectar cierta información en los pods en
kararade marked this conversation as resolved.
Show resolved Hide resolved
el momento de la creación. Esta información puede incluir secretos, volúmenes,
montajes de volúmenes y variables de entorno.
{{% /capture %}}


{{% capture body %}}
## Conociendo a los Pod Presets
kararade marked this conversation as resolved.
Show resolved Hide resolved

Un `Pod Preset` es un recurso de la API utilizado para poder inyectar requerimientos
adicionales de tiempo de ejecución en un Pod en el momento de la creación.
Se utilizan los [selectores de etiquetas](/docs/concepts/overview/working-with-objects/labels/#label-selectors)
para especificar los Pods a los que se aplica un Pod Preset determinado.

El uso de un Pod Preset permite a los autores de plantillas de Pods no tener que proporcionar
explícitamente toda la información de cada Pod. De esta manera, los autores de plantillas de
Pods que consuman un determinado servicio no tendrán que conocer todos los detalles de ese servicio.

Para más información sobre los detalles de los trasfondos, consulte la [propuesta de diseño de PodPreset](https://git.k8s.io/community/contributors/design-proposals/service-catalog/pod-preset.md).

## Cómo funciona

Kubernetes provee un controlador de admisión (`PodPreset`) que, cuando está habilitado,
aplica los Pod Presets a las peticiones de creación de Pods entrantes.
Cuando se realiza una solicitud de creación de Pods, el sistema hace lo siguiente:

1. Obtiene todos los `PodPresets` disponibles para usar.
2. Verifica si los selectores de etiquetas de cualquier `PodPreset` se corresponden
kararade marked this conversation as resolved.
Show resolved Hide resolved
con las etiquetas del Pod que se está creando.
3. Intenta fusionar los diversos recursos definidos por el `PodPreset` dentro del Pod
que se está creando.
4. Si se llegase a producir un error al intertar fusionar los recursos dentro del Pod,
kararade marked this conversation as resolved.
Show resolved Hide resolved
lanza un evento que documente este error, luego crea el Pod _sin_ ningún recurso que se
inyecte desde el `PodPreset`.
5. Escribe una nota descriptiva de la especificación de Pod modificada resultante para
indicar que ha sido modificada por un `PodPreset`. La nota descriptiva presenta la forma
`podpreset.admission.kubernetes.io/podpreset-<pod-preset name>: "<resource version>"`.

Cada Pod puede ser correspondido por cero o más Pod Presets; y cada `Pod Preset` puede ser
aplicado a cero o más Pods. Cuando se aplica un `Pod Preset` a una o más Pods, Kubernetes
modifica la especificación del Pod. Para los cambios a `Env`, `EnvFrom`, y `VolumeMounts`,
Kubernetes modifica la especificación del container para todos los containers en el Pod;
kararade marked this conversation as resolved.
Show resolved Hide resolved
para los cambios a `Volume`, Kubernetes modifica la especificación del Pod.

{{< note >}}
Un Pod Preset es capaz de modificar los siguientes campos en las especificaciones de un Pod
en caso de ser necesario:
- El campo `.spec.containers`.
- El campo `initContainers` (requiere Kubernetes versión 1.14.0 o posterior).
{{< /note >}}

### Deshabilitar un Pod Preset para un Pod específico

Puede haber casos en los que se desee que un Pod no se vea alterado por ninguna posible
modificación del Pod Preset. En estos casos, se puede añadir una observación en el Pod
Spec de la siguiente forma: `podpreset.admission.kubernetes.io/exclude: "true"`.

## Habilitando un Pod Preset

Con el fin de utilizar los Pod Presets en un clúster se debe asegurarse de lo siguiente:
kararade marked this conversation as resolved.
Show resolved Hide resolved

1. Se ha configurado el tipo de API `settings.k8s.io/v1alpha1/podpreset`. Esto se puede hacer,
kararade marked this conversation as resolved.
Show resolved Hide resolved
por ejemplo, incluyendo `settings.k8s.io/v1alpha1=true` como valor de la opción `--runtime-config`
en el servidor API. En minikube se debe añadir el flag
`--extra-config=apiserver.runtime-config=settings.k8s.io/v1alpha1=true` cuando el clúster
se está iniciando.
2. Se ha habilitado el controlador de admisión `PodPreset`. Una forma de hacer esto es incluir
kararade marked this conversation as resolved.
Show resolved Hide resolved
`PodPreset` como valor de la opción `--enable-admission-plugins` especificada
para el servidor API. En minikube se debe añadir el flag

```shell
--extra-config=apiserver.enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota,PodPreset
```

cuando el clúster se está iniciando.
3. Se han definido los Pod Presets mediante la creación de objetos `PodPreset` en el
kararade marked this conversation as resolved.
Show resolved Hide resolved
namespace que se utilizará.

{{% /capture %}}

{{% capture whatsnext %}}

* [Inyectando datos en un Pod usando PodPreset](/docs/tasks/inject-data-application/podpreset/)

{{% /capture %}}