Configurando Kong Gateway sin Base de Datos (DB-less)

Configurando Kong Gateway sin Base de Datos (DB-less)


backend kong kong-gateway kong-db-less docker microservicios

Kong Gateway es una herramienta popular de API Gateway y gestión de microservicios. Generalmente, Kong se configura con una base de datos como PostgreSQL. Sin embargo, también ofrece un modo “sin base de datos” (DB-less), útil para despliegues más simples o entornos donde una base de datos no es necesaria.

En esta guía, aprenderemos a configurar Kong Gateway en modo DB-less usando un archivo de configuración YAML.

Requisitos Previos

  • Docker instalado en tu sistema.
  • Familiaridad básica con archivos YAML.

1. Descargar la Imagen de Docker de Kong

Primero, descargaremos la imagen oficial de Kong desde Docker Hub:

docker pull kong:latest

2. Crear el Archivo de Configuración YAML

Para configurar Kong en modo sin base de datos, crearemos un archivo llamado kong.yaml.

Este archivo contendrá la configuración de las rutas y servicios.

Ejemplo de kong.yaml:

_format_version: "3.0"

services:
  - name: example-service
    url: https://httpbin.org
    routes:
      - name: example-route
        paths:
          - /example

Explicación del archivo:

  • _format_version: La versión del formato de configuración.
  • services: Define los servicios a los que Kong redirigirá el tráfico.
    • name: Nombre del servicio.
    • url: La URL del backend al que se redirigirá el tráfico.
    • routes: Define las rutas de acceso al servicio.
      • paths: Define los caminos (endpoints) de acceso.

3. Crear un Contenedor de Kong en Modo DB-less

Vamos a ejecutar un contenedor de Kong con la configuración DB-less:

docker run -d --name kong \
  -p 8000:8000 \
  -p 8443:8443 \
  -v $(pwd)/kong.yaml:/usr/local/kong/declarative/kong.yaml \
  -e "KONG_DATABASE=off" \
  -e "KONG_DECLARATIVE_CONFIG=/usr/local/kong/declarative/kong.yaml" \
  kong:latest

Explicación del comando

  • -p 8000:8000: Expone el puerto 8000 para peticiones HTTP.
  • -p 8443:8443: Expone el puerto 8443 para peticiones HTTPS.
  • -v $(pwd)/kong.yaml:/usr/local/kong/declarative/kong.yaml: Monta el archivo kong.yaml en el contenedor.
  • KONG_DATABASE=off: Desactiva el uso de base de datos.
  • KONG_DECLARATIVE_CONFIG: Ruta del archivo YAML de configuración declarativa.

4. Probar la Configuración

Una vez que el contenedor está en funcionamiento, podemos probar la ruta configurada usando curl:

curl http://localhost:8000/example

Deberías recibir una respuesta del servicio https://httpbin.org.

5. Detener y Eliminar el Contenedor

Cuando termines de probar, puedes detener y eliminar el contenedor con:

docker stop kong && docker rm kong

Conclusión

Configurar Kong Gateway en modo DB-less es una forma eficiente de simplificar tu despliegue, especialmente cuando no se necesita una base de datos externa. Es ideal para entornos de desarrollo o despliegues ligeros.

Ahora puedes extender la configuración de kong.yaml para agregar más servicios, rutas y plugins según tus necesidades.


Recursos adicionales:


© 2025 Jose Ramon Bogarin Valenzuela