Sobre el proyecto
El operador oficial de RavenDB para Kubernetes es la herramienta oficial para desplegar y gestionar clústeres de RavenDB en Kubernetes. Proporciona un enfoque totalmente automatizado y declarativo impulsado por un único recurso personalizado `RavenDBCluster`, asegurando que cada componente permanezca alineado con la especificación declarada para despliegues reproducibles.
**Métodos de instalación**: El operador soporta tres enfoques de instalación: Helm (recomendado, con gráficos separados para el operador y cada clúster), `make deploy` para desarrollo y pruebas locales, y paquetes OLM para clústeres que ejecutan Operator Lifecycle Manager. La distribución de Helm se divide en dos gráficos: `ravendb-operator` (a nivel de clúster, instalado una vez) y `ravendb-cluster` (por espacio de nombres, instalado una vez por clúster de RavenDB).
**Recurso personalizado**: El CRD `RavenDBCluster` es la única fuente de verdad, definiendo la topología de nodos, el modo TLS (Let's Encrypt o autofirmado), la estrategia de acceso externo, la disposición del almacenamiento, las imágenes y el comportamiento de arranque. Una vez reconciliado, el operador crea y gestiona todos los objetos subyacentes de Kubernetes, incluyendo StatefulSets, Services, Ingresses, Jobs y PVCs.
**Características principales**:
- **Gestión de certificados y TLS**: Soporta el modo Let's Encrypt utilizando el soporte integrado de RavenDB, certificados autofirmados o traídos por el usuario, certificados por nodo desde un Paquete de Configuración de RavenDB, y rotación automática de secretos tras la renovación del certificado.
- **Arranque del clúster**: Ejecuta un Job de Kubernetes de corta duración para esperar a los pods, validar la accesibilidad HTTPS, registrar el certificado de cliente de ClusterAdmin y formar el clúster según la topología de nodos declarada.
- **Acceso externo**: Soporta AWS Network Load Balancer (por nodo con mapeo explícito de EIP/subred/AZ), Azure Load Balancer, NGINX Ingress, HAProxy Ingress y Traefik Ingress.
- **Configuración de almacenamiento**: Configuración declarativa de volúmenes de datos, registros y auditoría con soporte para local-path, AWS EBS/EBS-CSI, Azure Disk/Azure Disk CSI y volúmenes adicionales (ConfigMap, Secret, PVC, emptyDir).
- **Actualizaciones continuas**: Orquesta actualizaciones nodo por nodo en el orden definido en la especificación, con compuertas de seguridad que se detienen ante fallos y se reanudan automáticamente una vez corregidos los problemas. Evita degradaciones de versión accidentales.
- **Informes de salud y estado**: Expone una fase de ciclo de vida (`Deploying`, `Running`, `Error`), condiciones detalladas para preparación, progreso y compuertas de salud, y emite Eventos de Kubernetes en cada transición de condición.
- **Soporte de desarrollo**: Despliegue local mediante `make deploy`, webhooks de admisión validadores y mutadores, apply del lado del servidor y reconciliaciones incrementales.
**Requisitos previos**: Kubernetes 1.23+, kubectl, Helm, cert-manager, una licencia de RavenDB y materiales de configuración de Let's Encrypt o certificados autofirmados.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.