Creación de Services en kubernetes
- Francisco Javier Huete
- Servicios
- March 9, 2025
Índice
Los servicios en Kubernetes permiten a otros pods o al usuario acceder al servicio que ofrece otro pod.
Para crear un servicio, primero es necesario aplicar un despliegue en el cluster de Kubernetes con la aplicación a la que el servicio debe permitir el acceso.
En este caso, se utiliza el despliegue de esta aplicación:
apiVersion: apps/v1
kind: Deployment
metadata:
name: guestbook
labels:
app: guestbook
tier: frontend
spec:
replicas: 3
selector:
matchLabels:
app: guestbook
tier: frontend
template:
metadata:
labels:
app: guestbook
tier: frontend
spec:
containers:
- name: contenedor-guestbook
image: iesgn/guestbook
ports:
- name: http-server
containerPort: 5000
A partir de esta aplicación, se crea el servicio.
apiVersion: v1
kind: Service
metadata:
name: guestbook
labels:
app: guestbook
tier: frontend
spec:
type: NodePort
ports:
- port: 80
targetPort: http-server
selector:
app: guestbook
tier: frontend
Para crear el servicio se usal kubectl apply.
kubectl apply -f guestbook-service.yaml
Al crear el servicio se obtiene un puerto entre el 30.000 y el 40.000. Así, se puede acceder a la aplicación accediendo a la IP del cluster en ese puerto. Para conocer la IP del cluster en Minikube se usa minikube ip. Para conocer el puerto en el que el servicio ofrece la aplicación se usa kubectl get service.
Esta aplicación necesita conectarse a una base de datos. Para ello se usa un servicio de tipo ClusterIP.
apiVersion: v1
kind: Service
metadata:
name: redis
labels:
app: redis
tier: backend
spec:
type: ClusterIP
ports:
- port: 6379
targetPort: redis-server
selector:
app: redis
tier: backend
Así, la aplicación puede acceder a la base de datos y funcionar de forma adecuada.