mr-cassop Architecture
mr-cassop is a comprehensive Kubernetes operator that deploys and manages Cassandra clusters along with essential supporting components for monitoring, backup, and maintenance.
Core Componentsβ
A CassandraCluster managed by mr-cassop consists of the following integrated components:
π― Operator Controllerβ
- Purpose: Main reconciliation engine that manages cluster state
- Responsibilities:
- Watches CassandraCluster resources
- Creates and manages StatefulSets, Services, and ConfigMaps
- Handles scaling operations and rolling updates
- Coordinates with other components
- Deployment: Runs as a Deployment in the
mr-cassop-systemnamespace
ποΈ Cassandra Nodesβ
- Purpose: The core Apache Cassandra database instances
- Deployment: Managed by StatefulSets (one per datacenter)
- Features:
- Persistent storage for data
- Automatic cluster formation
- JMX monitoring enabled
- Authentication and authorization configured
π Proberβ
- Purpose: Health monitoring and cross-region communication
- Responsibilities:
- Readiness and liveness checks
- Metrics collection and exposition
- Inter-datacenter health monitoring
- Node status aggregation
- Deployment: Sidecar container in each Cassandra pod
- Documentation: Prober Details
π Jolokiaβ
- Purpose: JMX-to-HTTP bridge for metrics collection
- Responsibilities:
- Exposes Cassandra JMX metrics over HTTP
- Provides secure access to management operations
- Enables monitoring integrations
- Deployment: Sidecar container in each Cassandra pod
- Website: jolokia.org
π§ Reaperβ
- Purpose: Automated repair management and scheduling
- Responsibilities:
- Cluster repair coordination
- Repair schedule management
- Repair progress monitoring
- Performance optimization
- Deployment: Separate Deployment per cluster
- Website: cassandra-reaper.io
- Documentation: Reaper Configuration
πΎ Icarusβ
- Purpose: Backup and restore service
- Responsibilities:
- Automated backup creation
- Point-in-time recovery
- Cross-region backup replication
- Backup lifecycle management
- Deployment: Sidecar container in each Cassandra pod
System Architectureβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Kubernetes Cluster β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β mr-cassop-system namespace β
β βββββββββββββββββββ β
β β mr-cassop β β
β β (Operator) β βββββββ Watches CassandraCluster CRDs β
β βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Application namespace (e.g., cassop) β
β β
β βββββββββββββββββββ βββββββββββββββββββ β
β β Reaper β β Monitoring β β
β β (Repairs) β β Dashboard β β
β βββββββββββββββββββ βββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Cassandra StatefulSet (dc1) β β
β β β β
β β βββββββββββ βββββββββββ βββββββββββ β β
β β β Pod-0 β β Pod-1 β β Pod-2 β β β
β β β β β β β β β β
β β β βββββββ β β βββββββ β β βββββββ β β β
β β β β C* β β β β C* β β β β C* β β β β
β β β βββββββ β β βββββββ β β βββββββ β β β
β β β βββββββ β β βββββββ β β βββββββ β β β
β β β βProberβ β β βProberβ β β βProberβ β β β
β β β βββββββ β β βββββββ β β βββββββ β β β
β β β βββββββ β β βββββββ β β βββββββ β β β
β β β βJolokiaβ β β βJolokiaβ β β βJolokiaβ β β β
β β β βββββββ β β βββββββ β β βββββββ β β β
β β β βββββββ β β βββββββ β β βββββββ β β β
β β β βIcarusβ β β βIcarusβ β β βIcarusβ β β β
β β β βββββββ β β βββββββ β β βββββββ β β β
β β βββββββββββ βββββββββββ βββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Component Interactionsβ
- Operator Controller continuously watches for CassandraCluster resources
- StatefulSets are created/updated based on cluster specifications
- Prober containers monitor Cassandra health and report status
- Jolokia exposes JMX metrics for monitoring and management
- Reaper automatically schedules and executes repairs
- Icarus handles backup operations based on configured schedules
- Services provide stable networking for client connections
Multi-Datacenter Supportβ
For multi-region deployments, mr-cassop creates:
- One StatefulSet per datacenter
- Cross-datacenter networking configuration
- Automatic seed node management
- Region-aware backup strategies
See Multi-Region Configuration for details.
Monitoring Integrationβ
The architecture supports comprehensive monitoring through:
- Prometheus metrics from Jolokia and Prober
- Grafana dashboards for visualization
- Kubernetes native health checks
- Custom alerts and notifications
See Prober Documentation for monitoring and health-check details.