Skip to content

Commit 89a9705

Browse files
authored
Merge pull request #41702 from ramrodo/gh-41699-localize-configuration-overview
[es] Localize content/en/docs/concepts/configuration/overview.md to Spanish
2 parents 72433a7 + e756d9c commit 89a9705

File tree

1 file changed

+135
-0
lines changed

1 file changed

+135
-0
lines changed
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
---
2+
title: Prácticas Recomendadas de Configuración
3+
content_type: concept
4+
weight: 10
5+
---
6+
7+
<!-- overview -->
8+
Este documento destaca y consolida las prácticas recomendadas de configuración que se presentan
9+
a lo largo de la guía del usuario, la documentación de Introducción y los ejemplos.
10+
11+
Este es un documento vivo. Si se te ocurre algo que no está en esta lista pero que puede ser útil
12+
a otros, no dudes en crear un _issue_ o enviar un PR.
13+
14+
<!-- body -->
15+
## Consejos Generales de Configuración
16+
17+
- Al definir configuraciones, especifica la última versión estable de la API.
18+
19+
- Los archivos de configuración deben almacenarse en el control de versiones antes de enviarse al clúster. Este
20+
le permite revertir rápidamente un cambio de configuración si es necesario. También ayuda a
21+
la recreación y restauración del clúster.
22+
23+
- Escribe tus archivos de configuración usando YAML en lugar de JSON. Aunque estos formatos se pueden utilizarse
24+
indistintamente en casi todos los escenarios, YAML tiende a ser más amigable con el usuario.
25+
26+
- Agrupa los objetos relacionados en un solo archivo siempre que tenga sentido. Un archivo suele ser más fácil de
27+
administrar que varios. Ver el archivo
28+
[guestbook-all-in-one.yaml](https://github.com/kubernetes/examples/tree/master/guestbook/all-in-one/guestbook-all-in-one.yaml)
29+
como un ejemplo de esta sintaxis.
30+
31+
- Ten en cuenta también que se pueden llamar muchos comandos `kubectl` en un directorio. Por ejemplo, puedes llamar
32+
`kubectl apply` en un directorio de archivos de configuración.
33+
34+
- No especifiques valores predeterminados innecesariamente: una configuración simple y mínima hará que los errores sean menos probables.
35+
36+
- Coloca descripciones de objetos en anotaciones, para permitir una mejor introspección.
37+
38+
## "Naked" Pods vs ReplicaSets, Deployments y Jobs {#naked-pods-vs-replicasets-deployments-and-jobs}
39+
40+
- No usar "Naked" Pods (es decir, Pods no vinculados a un [ReplicaSet](/docs/concepts/workloads/controllers/replicaset/) o a un
41+
[Deployment](/docs/concepts/workloads/controllers/deployment/)) si puedes evitarlo. Los Naked Pods
42+
no se reprogramará en caso de falla de un nodo.
43+
44+
Un Deployment, que crea un ReplicaSet para garantizar que se alcance la cantidad deseada de Pods está
45+
siempre disponible y especifica una estrategia para reemplazar los Pods (como
46+
[RollingUpdate](/docs/concepts/workloads/controllers/deployment/#rolling-update-deployment)), es
47+
casi siempre preferible a crear Pods directamente, excepto por algunos explícitos
48+
[`restartPolicy: Never`](/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy) escenarios.
49+
Un [Job](/docs/concepts/workloads/controllers/job/) también puede ser apropiado.
50+
51+
## Servicios
52+
53+
- Crea un [Service](/docs/concepts/services-networking/service/) antes de tus cargas de trabajo de backend correspondientes
54+
(Deployments o ReplicaSets) y antes de cualquier carga de trabajo que necesite acceder a él.
55+
Cuando Kubernetes inicia un contenedor, proporciona variables de entorno que apuntan a todos los _Services_
56+
que se estaban ejecutando cuando se inició el contenedor. Por ejemplo, si existe un _Service_ llamado `foo`,
57+
todos los contenedores obtendrán las siguientes variables en su entorno inicial:
58+
59+
```shell
60+
FOO_SERVICE_HOST=<el host en el que se ejecuta el Service>
61+
FOO_SERVICE_PORT=<el puerto en el que se ejecuta el Service>
62+
```
63+
64+
\* Esto implica un requisito de ordenamiento - cualquier `Service` al que un `Pod` quiera acceder debe ser
65+
creado antes del `Pod` en sí mismo, de lo contrario, las variables de entorno no se completarán.
66+
El DNS no tiene esta restricción.
67+
68+
- Un [cluster add-on](/docs/concepts/cluster-administration/addons/) opcional (aunque muy recomendable)
69+
es un servidor DNS. El servidor DNS observa la API de Kubernetes en busca de nuevos `Servicios` y crea un conjunto
70+
de registros DNS para cada uno. Si el DNS se ha habilitado en todo el clúster, todos los `Pods` deben ser
71+
capaces de hacer la resolución de nombres de `Services` automáticamente.
72+
73+
- No especifiques un `hostPort` para un Pod a menos que sea absolutamente necesario. Cuando vinculas un Pod a un
74+
`hostPort`, limita la cantidad de lugares en los que se puede agendar el Pod, porque cada combinación <`hostIP`,
75+
`hostPort`, `protocol`> debe ser única. Si no especificas el `hostIP` y
76+
`protocol` explícitamente, Kubernetes usará `0.0.0.0` como el `hostIP` predeterminado y `TCP` como el
77+
`protocol` por defecto.
78+
79+
Si solo necesitas acceder al puerto con fines de depuración, puedes utilizar el
80+
[apiserver proxy](/docs/tasks/access-application-cluster/access-cluster/#manually-constructing-apiserver-proxy-urls)
81+
o [`kubectl port-forward`](/docs/tasks/access-application-cluster/port-forward-access-application-cluster/).
82+
83+
Si necesitas exponer explícitamente el puerto de un Pod en el nodo, considera usar un
84+
[NodePort](/docs/concepts/services-networking/service/#type-nodeport) Service antes de recurrir a
85+
`hostPort`.
86+
87+
- Evita usar `hostNetwork`, por las mismas razones que `hostPort`.
88+
89+
- Usa [headless Services](/docs/concepts/services-networking/service/#headless-services)
90+
(que tiene un `ClusterIP` de `None`) para el descubrimiento de servicios cuando no necesites
91+
balanceo de carga `kube-proxy`.
92+
93+
## Usando Labels
94+
95+
- Define y usa [labels](/docs/concepts/overview/working-with-objects/labels/) que identifiquen
96+
__atributos semánticos__ de tu aplicación o Deployment, como `{ app.kubernetes.io/name:
97+
MyApp, tier: frontend, phase: test, deployment: v3 }`. Puedes utilizar estas labels para seleccionar los
98+
Pods apropiados para otros recursos; por ejemplo, un Service que selecciona todo los
99+
Pods `tier: frontend`, o todos los componentes `phase: test` de `app.kubernetes.io/name: MyApp`.
100+
Revisa el [libro de visitas](https://github.com/kubernetes/examples/tree/master/guestbook/)
101+
para ver ejemplos de este enfoque.
102+
103+
Un Service puede hacer que abarque múltiples Deployments omitiendo las labels específicas de la versión de su
104+
selector. Cuando necesites actualizar un servicio en ejecución sin downtime, usa un
105+
[Deployment](/docs/concepts/workloads/controllers/deployment/).
106+
107+
Un estado deseado de un objeto se describe mediante una implementación, y si los cambios a esa especificación son
108+
_aplicados_, el controlador de implementación cambia el estado actual al estado deseado en un
109+
ritmo controlado.
110+
111+
- Use las [labels comunes de Kubernetes](/docs/concepts/overview/working-with-objects/common-labels/)
112+
para casos de uso común. Estas labels estandarizadas enriquecen los metadatos de una manera que permite que las herramientas,
113+
incluyendo `kubectl` y el [dashboard](/docs/tasks/access-application-cluster/web-ui-dashboard),
114+
trabajen de forma interoperable.
115+
116+
- Puedes manipular las labels para la depuración. Debido a que los controladores de Kubernetes (como ReplicaSet) y
117+
los Services coinciden con los Pods usando labels de selector, se detendrá la eliminación de las labels relevantes de un Pod
118+
que sea considerado por un controlador o que un Service sirva tráfico. si quitas
119+
las labels de un Pod existente, su controlador creará un nuevo Pod para ocupar su lugar. Esto es un
120+
forma útil de depurar un Pod previamente "vivo" en un entorno de "cuarentena". Para eliminar interactivamente
121+
o agregar labels, usa [`kubectl label`](/docs/reference/generated/kubectl/kubectl-commands#label).
122+
123+
## Usando kubectl
124+
125+
- Usa `kubectl apply -f <directorio>`. Esto busca la configuración de Kubernetes en todos los `.yaml`,
126+
`.yml`, y `.json` en `<directorio>` y lo pasa a `apply`.
127+
128+
- Usa selectores de labels para las operaciones `get` y `delete` en lugar de nombres de objetos específicos. Ve las
129+
secciones en [selectores de labels](/docs/concepts/overview/working-with-objects/labels/#label-selectors)
130+
y [usar labels de forma eficaz](/docs/concepts/cluster-administration/manage-deployment/#using-labels-effectively).
131+
132+
- Usa `kubectl create deployment` y `kubectl expose` para crear rápidamente un contenedor único
133+
Deployments y Services.
134+
Consulta [Usar un Service para Acceder a una Aplicación en un Clúster](/docs/tasks/access-application-cluster/service-access-application-cluster/)
135+
para un ejemplo.

0 commit comments

Comments
 (0)