Saltar al contenido principal

Kubernetes: Cluster mediawiki-production

Este documento describe los componentes desplegados en el namespace mediawiki-production, su rol dentro del sistema, y consideraciones operativas respecto a reinicios, borrado y funcionamiento.


Pods Principales

1. mariadb-0

  • Tipo: StatefulSet
  • Rol: Base de datos principal para las wikis de MediaWiki.
  • Características:
    • StatefulSet asegura nombre estable y almacenamiento persistente.
    • Asociado a un PVC (storage-mariadb-0) que mantiene los datos incluso si el pod se elimina.
  • Operaciones:
    • Reiniciar: kubectl delete pod mariadb-0 -n mediawiki-production → Kubernetes lo recreará automáticamente.
    • Nunca eliminar el PVC sin backup previo.

2. mediawiki-* (varias réplicas)

  • Tipo: ReplicaSet / Deployment
  • Rol: Contienen la aplicación MediaWiki que sirve las wikis.
  • Características:
    • Existen múltiples réplicas (3) (mediawiki-xxxxx), lo que permite balanceo de carga y alta disponibilidad.
    • Si un pod se reinicia o elimina, Kubernetes crea uno nuevo automáticamente.

3. varnish-*

  • Tipo: ReplicaSet
  • Rol: Cache reversa que acelera las respuestas HTTP de MediaWiki.
  • Características:
    • Reduce carga en MediaWiki y MariaDB.
    • Almacenamiento no persistente, puede ser eliminado sin riesgo de pérdida de datos.
  • Operaciones:
    • Reinicio seguro: kubectl delete pod <varnish-pod> -n mediawiki-production.

4. db-backup-* (Jobs)

  • Tipo: Job
  • Rol: Respaldos periódicos de la base de datos MariaDB.
  • Características:
    • Cada pod de tipo db-backup-xxxxx se ejecuta, genera el respaldo y finaliza con estado Succeeded.
    • No permanecen en ejecución, solo se crean bajo demanda o en cron jobs programados.
  • Operaciones:
    • Forzar un backup: kubectl create job ... (dependiendo del manifiesto configurado).

5. reiniciar-mariadb-* (Jobs)

  • Tipo: Job
  • Rol: Jobs especiales diseñados para forzar un reinicio de MariaDB de forma controlada.
  • Características:
    • Al ejecutarse, gestionan acciones administrativas sobre el StatefulSet de MariaDB.
    • Finalizan en Succeeded.
  • Operaciones:
    • Normalmente no se ejecutan manualmente salvo mantenimiento.

6. mariadb-metrics-*

  • Tipo: ReplicaSet
  • Rol: Exportador de métricas de MariaDB (similar a mysqld_exporter).
  • Características:
    • Expone métricas para Prometheus/Grafana.
    • Consulta periódicamente el estado de MariaDB.
    • No almacena datos críticos, puede eliminarse y se recreará automáticamente.
  • Operaciones:
    • Ver logs: kubectl logs <mariadb-metrics-pod> -n mediawiki-production.
    • Reinicio seguro: kubectl delete pod <mariadb-metrics-pod> -n mediawiki-production.

Consideraciones Operativas

  1. Pods de MediaWiki y Varnish → Pueden reiniciarse o eliminarse sin riesgo, Kubernetes los reemplaza.
  2. MariaDB (mariadb-0) → Nunca borrar el PVC asociado sin backup. Los reinicios deben planificarse.
  3. Jobs de Backup → Son críticos para la recuperación. Confirmar que siempre terminan en Succeeded.
  4. Jobs de Reinicio → Usarse con cuidado, pensados para mantenimiento controlado.
  5. Metrics → No afectan el servicio, pero son útiles para monitoreo y diagnóstico.

El namespace mediawiki-production está diseñado para soportar alta disponibilidad y resiliencia, siempre que se respeten las prácticas de no eliminar almacenamiento persistente sin respaldo y se mantengan en ejecución los Jobs de backup.