--- title: Hello Minikube content_type: tutorial weight: 5 menu: main: title: "Get Started" weight: 10 post: >
¿Listo para poner manos a la obra? Construye un clúster sencillo de Kubernetes que ejecuta un Hola Mundo para Node.js
card: name: tutorials weight: 10 --- Este tutorial muestra como ejecutar una aplicación Node.js Hola Mundo en Kubernetes utilizando [Minikube](/docs/setup/learning-environment/minikube) y Katacoda. Katacoda provee un ambiente de Kubernetes desde el navegador. {{< note >}} También se puede seguir este tutorial si se ha instalado [Minikube localmente](/docs/tasks/tools/install-minikube/). {{< /note >}} ## {{% heading "objectives" %}} * Desplegar una aplicación Hola Mundo en Minikube. * Ejecutar la aplicación. * Ver los logs de la aplicación. ## {{% heading "prerequisites" %}} Este tutorial provee una imagen de contenedor construida desde los siguientes archivos: {{< codenew language="js" file="minikube/server.js" >}} {{< codenew language="conf" file="minikube/Dockerfile" >}} Para más información sobre el comando `docker build`, lea la [documentación de Docker ](https://docs.docker.com/engine/reference/commandline/build/). ## Crear un clúster Minikube 1. Haz clic en **Launch Terminal** {{< kat-button >}} {{< note >}}Si se tiene instalado Minikube local, ejecutar `minikube start`.{{< /note >}} 2. Abrir el tablero de Kubernetes dashboard en un navegador: ```shell minikube dashboard ``` 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**. 4. Solo en el ambiente de Katacoda: Escribir `30000`, y hacer clic en **Display Port**. ## Crear un Deployment Un [*Pod*](/docs/concepts/workloads/pods/pod/) en Kubernetes es un grupo de uno o más contenedores, asociados con propósitos de administración y redes. El Pod en este tutorial tiene solo un contenedor. 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. 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. ```shell kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4 ``` 2. Ver el Deployment: ```shell kubectl get deployments ``` El resultado es similar a: ``` NAME READY UP-TO-DATE AVAILABLE AGE hello-node 1/1 1 1 1m ``` 3. Ver el Pod: ```shell kubectl get pods ``` El resultado es similar a: ``` NAME READY STATUS RESTARTS AGE hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m ``` 4. Ver los eventos del clúster: ```shell kubectl get events ``` 5. Ver la configuración `kubectl`: ```shell kubectl config view ``` {{< note >}} Para más información sobre el comando `kubectl`, ver [kubectl overview](/docs/user-guide/kubectl-overview/).{{< /note >}} ## Crear un Service 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 [*Service*](/docs/concepts/services-networking/service/) de Kubernetes. 1. Exponer el Pod a la red pública de internet utilizando el comando `kubectl expose`: ```shell kubectl expose deployment hello-node --type=LoadBalancer --port=8080 ``` El flag `--type=LoadBalancer` indica que se quiere exponer el Service fuera del clúster. 2. Ver el Service creado: ```shell kubectl get services ``` El resultado es similar a: ``` NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node LoadBalancer 10.108.144.78