Creación de Services en kubernetes

Í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.

comments powered by Disqus

Relacionados

Cómo simular un servidor PostgreSQL en GNS3

PostgreSQL es uno de los servidores de bases de datos más usados. Se trata de un software libre y portente que permite almacenar y gestionar grandes volúmenes de información. En este post se explica cómo simularlo en un escenario de GNS3.

Leer

Uso de cloud-init con libvirt

OpenStack es una herramienta de infraestructura como servicio que puede gestionarse desde la línea de comandos a través de su cliente.

Leer

Implantación de un cortafuegos perimetral con nftables

En este post se recoge un ejemplo práctico de la implantación de un sistema de cortafuegos perimetral usando la herramienta nftables para filtrar el tráfico que circula por la red.

Leer