Skip to content

Commit c8d47ea

Browse files
authored
Merge pull request #45629 from SerDigital/localize-content
[es] Added content/es/docs/tasks/manage-kubernetes-objects/imperative-config.md
2 parents 782539f + 5b321e6 commit c8d47ea

File tree

1 file changed

+163
-0
lines changed

1 file changed

+163
-0
lines changed
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
---
2+
title: Administración Imperativa de Objetos de Kubernetes Mediante Archivos de Configuración
3+
content_type: task
4+
weight: 40
5+
---
6+
7+
<!-- overview -->
8+
Los objetos de Kubernetes se pueden crear, actualizar y eliminar utilizando la herramienta
9+
de línea de comandos `kubectl` junto con un archivo de configuración de objetos escrito en YAML o JSON.
10+
Este documento explica cómo definir y gestionar objetos utilizando archivos de configuración.
11+
12+
13+
## {{% heading "prerequisites" %}}
14+
15+
16+
Instalar [`kubectl`](/docs/tasks/tools/).
17+
18+
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
19+
20+
21+
22+
<!-- steps -->
23+
24+
## Opciones
25+
26+
La herramienta `kubectl` admite tres tipos de administración de objetos:
27+
28+
* Comandos imperativos
29+
* Configuración de objeto imperativo.
30+
* Configuración de objeto declarativo
31+
32+
Consulta [Administración de objetos de Kubernetes](/docs/concepts/overview/working-with-objects/object-management/)
33+
para una discusión de las ventajas y desventajas de cada tipo de administración de objetos.
34+
35+
## ¿Cómo crear objetos?
36+
37+
Puede usar `kubectl create -f` para crear un objeto a partir de un archivo de configuración.
38+
Consulta la [referencia de la API de Kubernetes](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/)
39+
para mas detalles.
40+
41+
* `kubectl create -f <filename|url>`
42+
43+
## ¿Cómo actualizar objetos?
44+
45+
{{< warning >}}
46+
La actualización de objetos con el comando `replace` elimina todas las
47+
partes de la especificación no especificadas en el archivo de configuración. Esto no debe
48+
usarse con objetos cuyas especificaciones son administradas
49+
parcialmente por el clúster, como Services de tipo `LoadBalancer`, donde el
50+
campo `externalIPs` se administra independientemente del archivo de
51+
configuración. Los campos administrados de forma independiente deben copiarse en
52+
el archivo de configuración para evitar que `replace` los elimine.
53+
{{< /warning >}}
54+
55+
Puedes usar `kubectl replace -f` para actualizar un objeto en activo de acuerdo con un archivo de configuración.
56+
57+
* `kubectl replace -f <filename|url>`
58+
59+
## ¿Cómo eliminar objetos?
60+
61+
Puedes usar `kubectl delete -f` para eliminar un objeto que se describe en un
62+
archivo de configuración.
63+
64+
* `kubectl delete -f <filename|url>`
65+
66+
{{< note >}}
67+
Si el archivo de configuración especifica el campo `generateName` en la sección `metadata` en lugar del campo `name`, no puede eliminar el objeto usando `kubectl delete -f <filename|url>`. Tendrás que usar otras banderas para eliminar el objeto. Por ejemplo:
68+
69+
```shell
70+
kubectl delete <type> <name>
71+
kubectl delete <type> -l <label>
72+
```
73+
{{< /note >}}
74+
75+
## ¿Cómo ver un objeto?
76+
77+
Puedes usar `kubectl get -f` para ver información sobre un objeto que está
78+
descrito en un archivo de configuración.
79+
80+
* `kubectl get -f <filename|url> -o yaml`
81+
82+
La bandera `-o yaml` especifica que se imprime la configuración completa del objeto. Utiliza `kubectl get -h` para ver una lista de opciones.
83+
84+
## Limitaciones
85+
Los comandos `create`, `replace` y `delete` funcionan bien cuando la configuración de cada objeto está completamente definida y registrada en su archivo de configuración. Sin embargo, cuando se actualiza un objeto activo y las actualizaciones no se combinan en su archivo de configuración las actualizaciones se perderán la próxima vez que se ejecute un `replace`. Esto puede suceder si un controlador, como un HorizontalPodAutoscaler, realiza actualizaciones directamente a un objeto en activo.
86+
Los comandos `create`, `replace` y `delete` funcionan bien cuando la configuración de cada objeto
87+
está completamente definida y registrada en su archivo
88+
de configuración. Sin embargo, cuando se actualiza un objeto activo y las actualizaciones no se combinan
89+
en su archivo de configuración las actualizaciones se perderán la próxima vez que
90+
se ejecute un `replace`. Esto puede suceder si un controlador, como un
91+
HorizontalPodAutoscaler, realice actualizaciones directamente a un objeto en activo.
92+
93+
94+
Ejemplo:
95+
96+
1. Creas un objeto a partir de un archivo de configuración.
97+
1. Otra fuente actualiza el objeto cambiando algún campo.
98+
1. Reemplaza el objeto del archivo de configuración. Cambios hechos por
99+
la otra fuente en el paso 2 se pierden.
100+
101+
Si necesitas admitir varios escritores en el mismo objeto, puede usar `kubectl apply` para administrar el objeto.
102+
103+
## Crear y editar un objeto desde una URL sin guardar la configuración
104+
105+
Supongamos que tienes la URL de un archivo de configuración de objeto. Puedes usar
106+
1. Exporta el objeto en vivo a un archivo de configuración de objeto local.
107+
que apuntan a un archivo de configuración que podría ser modificado por el lector.
108+
109+
110+
```shell
111+
kubectl create -f <url> --edit
112+
```
113+
114+
## Migración de comandos imperativos a configuración de objetos imperativos
115+
116+
La migración de comandos imperativos a la configuración de objetos imperativos implica varios pasos manuales.
117+
118+
1. Exporta el objeto en vivo a un archivo de configuración de objeto local.
119+
120+
```shell
121+
kubectl get <kind>/<name> -o yaml > <kind>_<name>.yaml
122+
```
123+
124+
1. Elimina manualmente el campo de estado del archivo de configuración del objeto.
125+
126+
1. Para la gestión posterior de objetos, utiliza `replace` exclusivamente.
127+
128+
```shell
129+
kubectl replace -f <kind>_<name>.yaml
130+
```
131+
132+
## Definiendo selectores de controlador y etiquetas PodTemplate
133+
134+
{{< warning >}}
135+
Se desaconseja encarecidamente actualizar los selectores de los controladores.
136+
{{< /warning >}}
137+
138+
139+
El enfoque recomendado es definir una etiqueta PodTemplate única e inmutable utilizada únicamente por el selector del controlador sin ningún otro significado semántico.
140+
141+
Etiqueta de ejemplo:
142+
143+
```yaml
144+
selector:
145+
matchLabels:
146+
controller-selector: "apps/v1/deployment/nginx"
147+
template:
148+
metadata:
149+
* [Referencia de la API de Kubernetes](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/)
150+
controller-selector: "apps/v1/deployment/nginx"
151+
```
152+
153+
154+
155+
## {{% heading "whatsnext" %}}
156+
157+
158+
* [Administración de objetos de Kubernetes mediante comandos imperativos](/docs/tasks/manage-kubernetes-objects/imperative-command/)
159+
* [Gestión declarativa de objetos de Kubernetes mediante archivos de configuración](/docs/tasks/manage-kubernetes-objects/declarative-config/)
160+
* [Referencia de comandos de Kubectl](/docs/reference/generated/kubectl/kubectl-commands/)
161+
* [Referencia de API de Kubernetes](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/)
162+
163+

0 commit comments

Comments
 (0)