Skip to content

Commit b31f2e3

Browse files
authored
Merge pull request #20806 from qckzr/minikube-spanish
Fix missing Hello Minikube example in Spanish documentation
2 parents 7c23e14 + 812a9ce commit b31f2e3

File tree

4 files changed

+289
-1
lines changed

4 files changed

+289
-1
lines changed

content/es/docs/tutorials/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Antes de recorrer cada tutorial, recomendamos añadir un marcador a
2727

2828
* [Introduction to Kubernetes (edX)](https://www.edx.org/course/introduction-kubernetes-linuxfoundationx-lfs158x#)
2929

30-
* [Hello Minikube](/docs/tutorials/hello-minikube/)
30+
* [Hello Minikube](/es/docs/tutorials/hello-minikube/)
3131

3232
## Configuración
3333

Lines changed: 275 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,275 @@
1+
---
2+
title: Hello Minikube
3+
content_template: templates/tutorial
4+
weight: 5
5+
menu:
6+
main:
7+
title: "Get Started"
8+
weight: 10
9+
post: >
10+
<p>¿Listo para poner manos a la obra? Construye un clúster sencillo de Kubernetes que ejecuta un Hola Mundo para Node.js</p>
11+
card:
12+
name: tutorials
13+
weight: 10
14+
---
15+
16+
{{% capture overview %}}
17+
18+
Este tutorial muestra como ejecutar una aplicación Node.js Hola Mundo en Kubernetes utilizando
19+
[Minikube](/docs/setup/learning-environment/minikube) y Katacoda.
20+
Katacoda provee un ambiente de Kubernetes desde el navegador.
21+
22+
{{< note >}}
23+
También se puede seguir este tutorial si se ha instalado [Minikube localmente](/docs/tasks/tools/install-minikube/).
24+
{{< /note >}}
25+
26+
{{% /capture %}}
27+
28+
{{% capture objectives %}}
29+
30+
* Desplegar una aplicación Hola Mundo en Minikube.
31+
* Ejecutar la aplicación.
32+
* Ver los logs de la aplicación.
33+
34+
{{% /capture %}}
35+
36+
{{% capture prerequisites %}}
37+
38+
Este tutorial provee una imagen de contenedor construida desde los siguientes archivos:
39+
40+
{{< codenew language="js" file="minikube/server.js" >}}
41+
42+
{{< codenew language="conf" file="minikube/Dockerfile" >}}
43+
44+
Para más información sobre el comando `docker build`, lea la [documentación de Docker ](https://docs.docker.com/engine/reference/commandline/build/).
45+
46+
{{% /capture %}}
47+
48+
{{% capture lessoncontent %}}
49+
50+
## Crear un clúster Minikube
51+
52+
1. Haz clic en **Launch Terminal**
53+
54+
{{< kat-button >}}
55+
56+
{{< note >}}Si se tiene instalado Minikube local, ejecutar `minikube start`.{{< /note >}}
57+
58+
2. Abrir el tablero de Kubernetes dashboard en un navegador:
59+
60+
```shell
61+
minikube dashboard
62+
```
63+
64+
3. Solo en el ambiente de Katacoda: En la parte superior de la terminal, haz clic en el símbolo + y luego clic en **Select port to view on Host 1**.
65+
66+
4. Solo en el ambiente de Katacoda: Escribir `30000`, y hacer clic en **Display Port**.
67+
68+
## Crear un Deployment
69+
70+
Un [*Pod*](/docs/concepts/workloads/pods/pod/) en Kubernetes es un grupo de uno o más contenedores,
71+
asociados con propósitos de administración y redes. El Pod en este tutorial tiene solo un contenedor.
72+
Un [*Deployment*](/docs/concepts/workloads/controllers/deployment/) en Kubernetes verifica la salud del Pod y reinicia su contenedor si este es eliminado. Los Deployments son la manera recomendada de manejar la creación y escalación.
73+
74+
1. Ejecutar el comando `kubectl create` para crear un Deployment que maneje un Pod. El Pod ejecuta un contenedor basado en la imagen proveida por Docker.
75+
76+
```shell
77+
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
78+
```
79+
80+
2. Ver el Deployment:
81+
82+
```shell
83+
kubectl get deployments
84+
```
85+
86+
El resultado es similar a:
87+
88+
```
89+
NAME READY UP-TO-DATE AVAILABLE AGE
90+
hello-node 1/1 1 1 1m
91+
```
92+
93+
3. Ver el Pod:
94+
95+
```shell
96+
kubectl get pods
97+
```
98+
99+
El resultado es similar a:
100+
101+
```
102+
NAME READY STATUS RESTARTS AGE
103+
hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m
104+
```
105+
106+
4. Ver los eventos del clúster:
107+
108+
```shell
109+
kubectl get events
110+
```
111+
112+
5. Ver la configuración `kubectl`:
113+
114+
```shell
115+
kubectl config view
116+
```
117+
118+
{{< note >}} Para más información sobre el comando `kubectl`, ver [kubectl overview](/docs/user-guide/kubectl-overview/).{{< /note >}}
119+
120+
## Crear un Service
121+
122+
Por defecto, el Pod es accedido por su dirección IP interna dentro del clúster de Kubernetes, para hacer que el contenedor `hello-node` sea accesible desde afuera de la red virtual Kubernetes, se debe exponer el Pod como un
123+
[*Service*](/docs/concepts/services-networking/service/) de Kubernetes.
124+
125+
1. Exponer el Pod a la red pública de internet utilizando el comando `kubectl expose`:
126+
127+
```shell
128+
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
129+
```
130+
131+
El flag `--type=LoadBalancer` indica que se quiere exponer el Service fuera del clúster.
132+
133+
2. Ver el Service creado:
134+
135+
```shell
136+
kubectl get services
137+
```
138+
139+
El resultado es similar a:
140+
141+
```
142+
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
143+
hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s
144+
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23m
145+
```
146+
147+
Para los proveedores Cloud que soportan balanceadores de carga, una dirección IP externa será provisionada para acceder al servicio, en Minikube, el tipo `LoadBalancer` permite que el servicio sea accesible a través del comando `minikube service`.
148+
149+
3. Ejecutar el siguiente comando:
150+
151+
```shell
152+
minikube service hello-node
153+
```
154+
155+
4. Solo en el ambiente de Katacoda: Hacer clic sobre el símbolo +, y luego en **Select port to view on Host 1**.
156+
157+
5. Solo en el ambiente de Katacoda: Anotar el puerto de 5 dígitos ubicado al lado del valor de `8080` en el resultado de servicios. Este número de puerto es generado aleatoriamente y puede ser diferente al indicado en el ejemplo. Escribir el número de puerto en el cuadro de texto y hacer clic en Display Port. Usando el ejemplo anterior, usted escribiría `30369`.
158+
159+
Esto abre una ventana de navegador que contiene la aplicación y muestra el mensaje "Hello World".
160+
161+
## Habilitar Extensiones
162+
163+
Minikube tiene un conjunto de {{< glossary_tooltip text="Extensiones" term_id="addons" >}} que pueden ser habilitados y desahabilitados en el ambiente local de Kubernetes.
164+
165+
1. Listar las extensiones soportadas actualmente:
166+
167+
```shell
168+
minikube addons list
169+
```
170+
171+
El resultado es similar a:
172+
173+
```
174+
addon-manager: enabled
175+
dashboard: enabled
176+
default-storageclass: enabled
177+
efk: disabled
178+
freshpod: disabled
179+
gvisor: disabled
180+
helm-tiller: disabled
181+
ingress: disabled
182+
ingress-dns: disabled
183+
logviewer: disabled
184+
metrics-server: disabled
185+
nvidia-driver-installer: disabled
186+
nvidia-gpu-device-plugin: disabled
187+
registry: disabled
188+
registry-creds: disabled
189+
storage-provisioner: enabled
190+
storage-provisioner-gluster: disabled
191+
```
192+
193+
2. Habilitar una extensión, por ejemplo, `metrics-server`:
194+
195+
```shell
196+
minikube addons enable metrics-server
197+
```
198+
199+
El resultado es similar a:
200+
201+
```
202+
metrics-server was successfully enabled
203+
```
204+
205+
3. Ver el Pod y Service creados:
206+
207+
```shell
208+
kubectl get pod,svc -n kube-system
209+
```
210+
211+
El resultado es similar a:
212+
213+
```
214+
NAME READY STATUS RESTARTS AGE
215+
pod/coredns-5644d7b6d9-mh9ll 1/1 Running 0 34m
216+
pod/coredns-5644d7b6d9-pqd2t 1/1 Running 0 34m
217+
pod/metrics-server-67fb648c5 1/1 Running 0 26s
218+
pod/etcd-minikube 1/1 Running 0 34m
219+
pod/influxdb-grafana-b29w8 2/2 Running 0 26s
220+
pod/kube-addon-manager-minikube 1/1 Running 0 34m
221+
pod/kube-apiserver-minikube 1/1 Running 0 34m
222+
pod/kube-controller-manager-minikube 1/1 Running 0 34m
223+
pod/kube-proxy-rnlps 1/1 Running 0 34m
224+
pod/kube-scheduler-minikube 1/1 Running 0 34m
225+
pod/storage-provisioner 1/1 Running 0 34m
226+
227+
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
228+
service/metrics-server ClusterIP 10.96.241.45 <none> 80/TCP 26s
229+
service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 34m
230+
service/monitoring-grafana NodePort 10.99.24.54 <none> 80:30002/TCP 26s
231+
service/monitoring-influxdb ClusterIP 10.111.169.94 <none> 8083/TCP,8086/TCP 26s
232+
```
233+
234+
4. Deshabilitar `metrics-server`:
235+
236+
```shell
237+
minikube addons disable metrics-server
238+
```
239+
240+
El resultado es similar a:
241+
242+
```
243+
metrics-server was successfully disabled
244+
```
245+
246+
## Limpieza
247+
248+
Ahora se puede eliminar los recursos creados en el clúster:
249+
250+
```shell
251+
kubectl delete service hello-node
252+
kubectl delete deployment hello-node
253+
```
254+
255+
Opcional, detener la máquina virtual de Minikube:
256+
257+
```shell
258+
minikube stop
259+
```
260+
261+
Opcional, eliminar la máquina virtual de Minikube:
262+
263+
```shell
264+
minikube delete
265+
```
266+
267+
{{% /capture %}}
268+
269+
{{% capture whatsnext %}}
270+
271+
* Leer más sobre [Deployments](/docs/concepts/workloads/controllers/deployment/).
272+
* Leer más sobre [Desplegando aplicaciones](/docs/tasks/run-application/run-stateless-application-deployment/).
273+
* Leer más sobre [Services](/docs/concepts/services-networking/service/).
274+
275+
{{% /capture %}}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
FROM node:6.14.2
2+
EXPOSE 8080
3+
COPY server.js .
4+
CMD [ "node", "server.js" ]
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
var http = require('http');
2+
3+
var handleRequest = function(request, response) {
4+
console.log('Received request for URL: ' + request.url);
5+
response.writeHead(200);
6+
response.end('Hello World!');
7+
};
8+
var www = http.createServer(handleRequest);
9+
www.listen(8080);

0 commit comments

Comments
 (0)