Acceso a las aplicaciones
Los siguientes apartados los encuentras en el Curso de Kuberenetes:
- Services. Tipos de Services
- Describiendo Services - Vídeo
- Gestionando los Services - Vídeo
- Servicio DNS en Kubernetes - Vídeo
- Ingress Controller - Vídeo
- Ejemplo completo: Desplegando y accediendo a la aplicación Temperaturas
Ejercicio 1: Despliegue y acceso de la aplicación GuestBook
Una vez que tenemos creado el despliegue de la aplicación GuestBook, que realizamos en el anterioor taller, vamos a crear los Services correspondientes para acceder a ella:
Service para acceder a la aplicación
El primer Service que vamos a crear nos va a permitir acceder a la aplicación GuestBook desde el exterior, para ello crea un fichero yaml con la definición del Service a partir de la siguiente plantilla:
apiVersion: v1
kind: Service
metadata:
name: guestbook
labels:
app: guestbook
tier: frontend
spec:
type:
ports:
- port:
targetPort:
selector:
app: guestbook
tier: frontend
Tienes que poner el tipo del Service, el puerto del servicio será el 80 y el nombre del puerto de la aplicación que hemos asignado en el Deployment es http-server.
Realiza los siguientes pasos:
- Elabora el fichero yaml con la definición del Service, y créalo.
- Comprueba el puerto que le han asignado al Service para acceder desde el exterior.
- Accede a la ip del nodo master y al puerto asignado desde un navegador web para ver la aplicación.
- Responde la siguiente pregunta: ¿Por qué aparece el mensaje de error: Waiting for database connection…?
Service para acceder a la base de datos
A continuación vamos a crear el Service para acceder a la base de datos. Vamos a crear el fichero yaml para su definición a partir de la siguiente plantilla:
apiVersion: v1
kind: Service
metadata:
name: redis
labels:
app: redis
tier: backend
spec:
type:
ports:
- port:
targetPort:
selector:
app: redis
tier: backend
Tienes que poner el tipo del Service, el puerto del servicio será el 6379 y el nombre del puerto de la base de datos que hemos asignado en el Deployment es redis-server. Nota: No cambies el nombre del Service, ya que la aplicación guestbook va a acceder por defecto a la base de datos usando el nombre redis.
Realiza los siguientes pasos:
- Elabora el fichero yaml con la definición del Service, y créalo.
- Lista los Services que has creado.
- Accede a la ip del nodo master y al puerto asignado desde un navegador web para ver la aplicación. Comprueba que funciona sin ningún problema.
Acceso a la aplicación usando Ingress
Vamos a crear el fichero yaml de definición del recurso Ingress para acceder a la aplicación a partir de la siguiente plantilla:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: guestbook
spec:
rules:
- host:
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name:
port:
number: 80
Indica un host del tipo www.tunombre.org, indica el nombre del Service que creaste para acceder a la aplicación guestbook y ten en cuenta que el puerto de dicho servicio era el 80.
Realiza los siguientes pasos:
- Activa el addon ingress en minikube para instalar el Ingress Controller.
- Crea La definición del recurso Ingress con los datos sugeridos, y crea el recurso Ingress.
- Modifica el fichero
/etc/hostsde tu ordenador para configurar la resolución estática. - Accede a la aplicación usando el nombre que has asignado.
Ejercicio 2: Despliegue y acceso de la Aplicación Lets-Chat
Let’s Chat es una aplicación web escrita en Node.js que utilizando una base de datos MongoDB nos posibilita la creación de salas de chats.
Vamos a realiza el despliegue y acceso a esta aplicación teniendo en cuenta los siguientes aspectos:
- La imagen docker que vamos a usar para el despliegue de Let’s Chat es
sdelements/lets-chaty para desplegar mongoDB utilizaremos la imagenmongo. Nota: utiliza imagenmongo:4, Let’s Chat es una aplicación antigua y no funciona con las últimas versiones de mongo. - Al crear el despliegue de Let’s Chat podemos poner varias replicas, pero el despliegue de la base de datos, sólo creará una replica.
- El puerto en el que responde la aplicación es el 8080. La base de datos utiliza el puerto 27017.
- Vamos acceder desde el exterior a la aplicación. Sin embargo, no es necesario acceder desde el exterior a la base de datos.
- El nombre del Service para acceder a la base de datos debe ser
mongoya que por defecto la aplicación va a conectar a la base de datos usando ese nombre. - Queremos acceder a la aplicación usando un nombre del tipo www.chat-tunombre.org.
Realiza los siguientes pasos:
- Utilizando como modelos los ficheros yaml de la actividad anterior, crea los ficheros necesarios para crear los recursos en tu cluster de Kubernetes para desplegar esta aplicación.