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

Configuración de un cortafuegos perimetral con nftables en un escenario con una red DMZ

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 en escenario que está formado por dos máquinas virtuales y dos contenedores. Las máquinas virtuales, Luffy y Zoro funcionan como router/cortafuegos y servidor web respectivamente. Además, Luffy tiene dos contenedores: Nami y Sanji. Nami es el servidor DNS de la red y Sanji tiene un servidor de correos y un servidor de base de datos MariaDB al que accede el servidor web instalado en Zoro.

Leer

Configuración de ACL en routers Cisco

Las ACL o listas de control de acceso son un mecanismo que permite controlar el tráfico que atraviesa en router en una red. En este post se demuestra el funcionamiento de las ACL en los routers Cisco con un escenario basado en los personajes de la saga “Los juegos del hambre”.

Leer

Instalación de Oracle Cloud Infrastructure OCI CLI

La herramienta para la línea de comandos de Oracle Cloud Infrastructure es un recurso muy útil para gestionar un arrendamiento en OCI. Es espacialmente práctica si se combina con otras herramientas para la gestión de infraestructura como código.

Leer