ScyllaDB on Kubernetes
ScyllaDB on
Kubernetes
In short: Running ScyllaDB on Kubernetes means using the Scylla Operator to deploy ScyllaCluster custom resources as rack-aware StatefulSets, ideally on local-NVMe PersistentVolumes to feed its shard-per-core architecture. The operator handles scaling, streaming rebalance, and rolling upgrades, while Scylla Manager runs scheduled S3 backups and repairs for DR.
Deploy ScyllaDB on Kubernetes with shard-per-core architecture, Scylla Operator automation, and close-to-hardware performance for cloud-native, high-throughput workloads at scale.
JusDB architects mission-critical ScyllaDB on Kubernetes deployments using the official Scylla Operator and ScyllaCluster CRD topology. Certified DBREs configure Seastar C++ shard-per-core CPU pinning, provision local NVMe RAID-0 storage classes, enforce multi-AZ rack-aware pod placement, and automate repair orchestration via Scylla Manager, delivering sub-5ms p99 latencies backed by 15-minute emergency SLAs.
Comprehensive ScyllaDB on Kubernetes Services
From Scylla Operator deployment to production monitoring, we provide end-to-end ScyllaDB on Kubernetes solutions for high-performance workloads.
Scylla Operator Deployment
Deploy and configure the Scylla Operator for automated ScyllaDB cluster lifecycle management on Kubernetes
- Scylla Operator installation and CRD setup
- ScyllaCluster custom resource configuration
- Rack-aware pod placement and topology
- Automated rolling upgrades and repairs
Helm Chart Management
Production-grade Helm chart customization for repeatable, version-controlled ScyllaDB deployments
- Custom values.yaml for environment tuning
- Multi-environment chart configurations
- Helm release lifecycle management
- GitOps integration with ArgoCD/Flux
Cluster Management on K8s
Optimize ScyllaDB's shard-per-core architecture and Seastar userspace I/O scheduler for maximum Kubernetes performance
- Shard-per-core CPU pinning configuration
- Seastar userspace I/O scheduler tuning
- IRQ balancing and NUMA awareness
- Resource requests and limits tuning
Storage & Persistence
Configure optimal storage backends for ScyllaDB on Kubernetes including local NVMe and PVCs
- Local NVMe SSD provisioning
- PersistentVolumeClaim configuration
- AWS i3/i4i instance optimization
- StorageClass and CSI driver setup
Monitoring on K8s
Deploy the Scylla Monitoring Stack with Prometheus and Grafana for full cluster observability
- Scylla Monitoring Stack deployment
- Grafana dashboards for per-shard metrics
- Prometheus ServiceMonitor integration
- Alerting rules and incident response
Backup & DR
Automated backup and disaster recovery with Scylla Manager on Kubernetes and S3 snapshots
- Scylla Manager deployment on K8s
- Scheduled S3 snapshot backups
- Cross-datacenter repair scheduling
- Point-in-time restore procedures
Why Choose ScyllaDB on Kubernetes?
ScyllaDB brings close-to-hardware performance to Kubernetes with its shard-per-core architecture, Cassandra compatibility, and 10x throughput advantage.
Shard-Per-Core Architecture
Each CPU core runs an independent shard with its own memory, I/O queues, and network connections. This eliminates lock contention and context switching, delivering predictable low-latency performance even under heavy load.
Cassandra-Compatible
ScyllaDB is a drop-in replacement for Apache Cassandra, supporting CQL, the same drivers, and SSTable format. Migrate existing Cassandra workloads to ScyllaDB on Kubernetes without application changes.
10x Throughput
Written in C++ with a userspace I/O scheduler and optional DPDK network stack, ScyllaDB delivers up to 10x the throughput of Cassandra with significantly lower P99 tail latencies on the same hardware.
Close-to-Hardware Performance
ScyllaDB's Seastar framework bypasses the kernel for I/O and networking, running entirely in userspace. On Kubernetes, this translates to maximum utilization of underlying node resources with minimal overhead.
ScyllaDB on K8s Key Metrics
ScyllaDB vs Cassandra on Kubernetes
Compare ScyllaDB and Apache Cassandra when running on Kubernetes to understand the performance and operational advantages.
ScyllaDB on Kubernetes
C++, shard-per-core, close-to-hardware
Best for: High-throughput, low-latency, cost-efficient K8s workloads
Apache Cassandra on Kubernetes
JVM-based, wide community, mature tooling
Best for: Existing Cassandra teams, broad community support
Our ScyllaDB on Kubernetes Implementation Process
A proven methodology for deploying production-ready ScyllaDB clusters on Kubernetes with full observability and automation.
Infrastructure Assessment
Evaluate Kubernetes cluster resources, node instance types, storage options, and network topology. Design rack-aware placement and resource allocation strategy for ScyllaDB pods.
Operator & Cluster Deployment
Install the Scylla Operator, configure ScyllaCluster CRDs, set up Helm charts, and deploy ScyllaDB with shard-per-core CPU pinning, NVMe storage, and Seastar I/O scheduler tuning.
Monitoring & Backup Setup
Deploy the Scylla Monitoring Stack with Grafana dashboards, configure Scylla Manager for automated backups to S3, and set up alerting rules for proactive incident response.
Validation & Go-Live
Run performance benchmarks, validate failover and scaling behavior, execute data migration if needed, and cut over to production with runbooks and 24/7 support.
How JusDB DBRE Kubernetes Engineering compares to alternative paths.
Operating stateful ScyllaDB clusters on Kubernetes without dedicated DBRE operator management risks Seastar reactor core stalls, non-direct I/O throughput bottlenecks, and unmanaged node resynchronization storms. Here is how our certified cloud-native engineering compares across core evaluation vectors:
| Evaluation Vector | JusDB DBRE | In-House DBA | Legacy Agency | Developer Generalist |
|---|---|---|---|---|
| ScyllaDB Operator Architecture & ScyllaCluster CRD Tuning | Architects the official Scylla Operator deploying ScyllaCluster and NodeConfig CRDs; tunes host sysctl parameters (fs.aio-max-nr, fs.file-max, vm.max_map_count), hugepages, and lifecycle hooks for rock-solid Kubernetes lifecycle management. | Deploys manual StatefulSets without operator reconciliation, lacking automated NodeConfig OS tuning and experiencing kernel lockups under heavy IOPS. | Treats ScyllaDB as a generic Cassandra pod deployment using basic bash wrappers that bypass Kubernetes admission webhooks and validation controllers. | Applies third-party community Helm charts without configuring operator CRDs, leading to failed pod rollouts and unmanaged schema mutations. |
| Seastar C++ Shard-per-Core CPU Pinning & Core Isolation | Enforces Guaranteed Quality of Service (QoS) with Kubernetes static CPU manager policy, pinning Seastar reactor threads 1:1 to dedicated physical cores and isolating IRQ balancing to eliminate context switching and P99 latency spikes. | Allocates Burstable QoS with fractional CPU shares, triggering aggressive CFS quota throttling and severe Seastar reactor execution stalls. | Relies on standard container multi-threading defaults, allowing adjacent noisy-neighbor pods to steal CPU cycles and destroy NoSQL tail latency. | Assigns fractional CPU requests (e.g., 3.5 cores), causing Seastar core calculation crashes and unhandled thread initialization panics. |
| Local NVMe RAID-0 StorageClasses & Direct I/O Scheduling | Provisions dedicated local NVMe drives formatted with XFS in RAID-0 via DirectPV or local-static-provisioner, tuning Seastar Direct I/O (O_DIRECT) and automated iotune benchmarks to guarantee sub-millisecond p99 IOPS. | Mounts remote network-attached block storage (e.g., EBS gp3) without iotune calibration, causing write compaction backpressure and disk stalls. | Uses default ext4 storage classes over standard cloud disks, causing buffer cache thrashing and breaking Seastar async userspace I/O scheduling. | Mounts unbacked ephemeral container storage or dynamic storage without volume retention policies, risking total data loss upon pod restart. |
| Multi-AZ Rack-Aware Topology & Replication Factor Mapping | Maps ScyllaDB logical racks 1:1 to Kubernetes availability zones using topologySpreadConstraints and ScyllaOperator rack definitions, ensuring NetworkTopologyStrategy replicas survive whole-zone datacenter outages. | Deploys all Scylla pods across random worker nodes in a single AZ, creating single points of failure that cause total cluster downtime during zone incidents. | Configures Cassandra SimpleStrategy replication with 1 rack spanning multiple zones, causing cross-AZ egress cost explosions and uncoordinated quorum writes. | Ignores zone affinity rules, allowing the Kubernetes scheduler to co-locate multiple shard replicas on the same underlying physical host node. |
| Scylla Manager Automated Repair & Rolling Zero-Downtime Upgrades | Integrates Scylla Manager for scheduled non-blocking row-level repairs, automated backup snapshots to S3/GCS, and coordinates rolling zero-downtime upgrades with automated gossip convergence verification. | Schedules manual nodetool repair cronjobs that oversaturate disk I/O, causing latency spikes and client timeout cascades during production hours. | Performs manual in-place container restarts without draining client connections, triggering read/write consistency failures and token range gaps. | Triggers simultaneous pod updates using default RollingUpdate strategies, causing immediate quorum loss across Cassandra CQL client drivers. |
| Cloud-Native Prometheus, Syscall Profiling & Node Exporter Telemetry | Deploys the Scylla Monitoring Stack with Prometheus ServiceMonitors, Grafana per-shard dashboards, eBPF/bcc syscall tracing, and custom alerting for reactor stalls and compaction backlog. | Relies on generic Kubernetes container CPU/memory metrics, lacking visibility into Seastar shard reactor stalls, cache hit ratios, or SSTable compaction queues. | Installs third-party APM agents inside the database container, introducing JVM/Python background threads that disrupt Seastar CPU core isolation. | Operates blind with basic container liveness probes, failing to detect silent node gossip partition splits until client requests time out. |
Kubernetes Failure Modes
Critical ScyllaDB on Kubernetes Risks We Eliminate
Operating high-throughput NoSQL database clusters inside containerized Kubernetes environments introduces Seastar fiber scheduling, Direct I/O storage, and gossip membership failure vectors. We engineer resilience into every layer to eliminate these production risks:
CPU Throttling Causing Seastar Fiber Scheduler Stalls
When ScyllaDB containers run under Burstable QoS or CFS bandwidth quotas, the Linux CFS scheduler periodically throttles worker threads when core limits are hit. Because Seastar relies on a cooperative userspace thread-per-core fiber engine that polls ring buffers continuously, CPU throttling pauses the entire reactor loop, triggering sudden multi-second p99 latency spikes and client timeout errors cluster-wide.
JusDB configures Kubernetes Guaranteed QoS with static CPU manager policy, isolcpus host affinity, and disables CFS bandwidth quotas, locking Seastar reactor threads 1:1 onto dedicated physical host cores.
Kubernetes Dynamic Provisioner Attaching Non-Direct I/O Storage
Standard cloud Kubernetes dynamic volume provisioners attach network-backed block storage (such as default cloud SSDs) formatted with ext4 without Direct I/O (O_DIRECT) support. The Linux page cache intercepts database disk operations, generating catastrophic buffer cache thrashing, compaction backpressure, and disk saturation stalls during high-throughput ingest.
JusDB provisions local NVMe drives formatted with XFS and Direct I/O via DirectPV or local-static-provisioner, runs automated iotune hardware benchmarking to generate scylla.yaml I/O properties, and tunes AIO queues.
Unmanaged Pod Restarts Triggering Heavy Node Gossip Resynchronization
When worker nodes restart abruptly or StatefulSet rolling updates trigger without coordinated node drainage, ScyllaDB pods terminate while actively serving read/write traffic. Surviving nodes detect gossip timeouts and initiate heavy schema and token range rechecks, flooding the Kubernetes network fabric and causing cascading query failures.
JusDB configures preStop lifecycle hooks executing nodetool drain, tunes PodDisruptionBudgets (maxUnavailable=1 per rack), and orchestrates rolling upgrades via Scylla Operator with automated gossip convergence verification.
Our DBREs execute non-blocking diagnostic commands across Kubernetes CRD controllers and internal ScyllaDB nodetool utilities to audit cluster topology, pod distribution, and shard health:
Audits ScyllaCluster CRD reconciliation status, member pod scheduling across Kubernetes worker nodes and availability zones, container readiness, and IP allocation.
# Trace ScyllaCluster custom resource reconciliation and wide pod topology kubectl get scyllacluster,pods -n scylla -o wide
Inspects cluster ring topology, node status (UN/DN), token ownership distributions, and queries Seastar shard CPU core allocations and active node memory stats.
# Inspect ScyllaDB cluster ring status and node health across racks kubectl exec -it -n scylla scylla-cluster-us-east-1a-0 -c scylla -- nodetool status # Verify active node uptime, Seastar shard metrics, and memory utilization kubectl exec -it -n scylla scylla-cluster-us-east-1a-0 -c scylla -- nodetool info
ScyllaDB on Kubernetes — Frequently Asked Questions
Common questions about deploying and managing ScyllaDB clusters on Kubernetes.
Ready to Deploy ScyllaDB on Kubernetes?
Let our experts deploy and manage ScyllaDB on your Kubernetes cluster with shard-per-core performance, automated operations, and full observability.