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.