Kubernetes: Desplegando la aplicación GuestBook (Parte 2)
Nuestra aplicación guestbook
nos daba un error porque no podía acceder a la base de datos redis, además la forma que teníamos para acceder a la aplicación era utilizando la redirección de puerto usando la instrucción kubectl port-forward
.
En este ejemplo vamos a crear dos servicios.
Definición del servicio para poder acceder a la base de datos redis
En este caso no tenemos que acceder a la base de datos desde el exterior. Es la aplicación la que internamente debe poder acceder a ella, por tanto vamos a crear un servicio del tipo ClusterIP. En el fichero redis-master-srv.yaml
encontramos la definición del servicio para acceder al master de redis:
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
app: redis
role: master
tier: backend
spec:
ports:
- port: 6379
targetPort: redis-server
selector:
app: redis
role: master
tier: backend
type: ClusterIP
De forma similar el fichero redis-slave-srv.yaml
define el servicio apra acceder al slave de redis.
Definición del servicio para poder acceder a la aplicación
En el fichero frontend-srv.yaml
encontramos la definición del servicio, que en este caso será del tipo NodePort para poder acceder a la aplicación desde el exterior:
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
type: NodePort
ports:
- port: 80
targetPort: http-server
selector:
app: guestbook
tier: frontend
Creando los servicios
Vamos a crear primero los servicios para el acceso a la base de datos:
kubectl create -f redis-master-srv.yaml
service "redis-master" created
kubectl create -f redis-slave-srv.yaml
service "redis-slave" created
Y a continuación creamos el servicio para el acceso a la aplicación:
kubectl create -f frontend-srv.yaml
service "frontend" created
Y comprobamos que hemos creado dos servicio del tipo ClustrIP para el acceso a la base de datos, y uno del tipo NodePort para el acceso a la aplicación:
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
frontend NodePort 10.103.199.174 <none> 80:30355/TCP 15s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7d
redis-master ClusterIP 10.108.176.214 <none> 6379/TCP 1m
redis-slave ClusterIP 10.105.89.203 <none> 6379/TCP 1m
Además comprobamos que nos han asignado el puerto 30355 para el acceso a la aplicación:
Índice de entradas sobre Kubernetes
Este artículo corresponde a una serie de entradas donde he hablado sobre Kubernetes:
- Instalación de kubernetes con kubeadm
- Desplegando una aplicación en Kubernetes
- Recursos de Kubernetes: Pods
- Recursos de Kubernetes: ReplicaSet
- Recursos de Kubernetes: Deployment
- Kubernetes: Desplegando la aplicación Mediawiki
- Kubernetes: Desplegando la aplicación GuestBook (Parte 1)
- Recursos de Kubernetes: Services
- El servicio DNS en Kubernetes
- Kubernetes: Desplegando la aplicación GuestBook (Parte 2)
- Kubernetes: Desplegando la aplicación LetsChat
- Recursos de Kubernetes: Ingress
- Accediendo a nuestras aplicaciones Kubernetes con Ingress
- Recursos de Kubernetes: Namespaces
- Kubernetes. Configurando nuestras aplicaciones: variables de entornos, ConfigMap, Secrets
- Kubernetes. Desplegando WordPress con MariaDB
- Almacenamiento en Kubernetes. PersistentVolumen. PersistentVolumenClaims
- Kubernetes. Desplegando WordPress con MariaDB con almacenamiento persistente
- Integración de Kubernetes con OpenStack
Leave a Comment
Your email address will not be published. Required fields are marked *