ScyllaDB University Live | Free Virtual Training Event
Learn more
ScyllaDB Documentation Logo Documentation
  • Deployments
    • Cloud
    • Server
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
    • Supported Driver Versions
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Install
Search Ask AI
ScyllaDB Docs ScyllaDB Operator Get Started What Is ScyllaDB Operator?

Caution

You're viewing documentation for an unstable version of ScyllaDB Operator. Switch to the latest stable version.

What Is ScyllaDB Operator?¶

ScyllaDB Operator is a Kubernetes Operator that automates the deployment and lifecycle management of ScyllaDB clusters on Kubernetes.

What problems does it solve?¶

Running ScyllaDB on Kubernetes without an operator requires manually handling many tasks that the Operator automates:

Concern

Without the Operator

With ScyllaDB Operator

Provisioning

Manually create StatefulSets, Services, ConfigMaps, PVCs, and configure ScyllaDB seed lists, snitch settings, and rack/DC placement.

Declare a ScyllaCluster resource. The Operator creates and configures all Kubernetes objects.

Scaling

Manually adjust StatefulSet replicas, update seed lists, and run nodetool cleanup on existing nodes after the new node finishes streaming.

Change the members count in the spec. The Operator handles the StatefulSet update and runs cleanup automatically when token ownership changes.

Upgrades

Manually update the container image, coordinate a rolling restart, and verify each node rejoins before proceeding to the next.

Update the image field in the spec. The Operator performs a rolling upgrade one node at a time, verifying health at each step.

Node replacement

Manually drain the node, remove it from the cluster, recreate the pod, and pass the replace_address_first_boot flag.

Label the node’s Service for replacement. The Operator handles draining, decommissioning, and bootstrapping the replacement.

Performance tuning

SSH into each Kubernetes node to run perftune, configure IRQ affinity, set sysctls, and prepare RAID/filesystem layouts.

Create a NodeConfig resource. The Operator deploys privileged DaemonSets and Jobs that tune each node and prepare disks automatically.

Repairs and backups

Install and configure ScyllaDB Manager separately, register clusters manually, and schedule tasks.

Define repair and backup tasks in the cluster spec or as ScyllaDBManagerTask resources. The Operator deploys Manager and registers clusters.

Monitoring

Deploy and configure Prometheus, Grafana, ServiceMonitors, and dashboards manually.

Create a ScyllaDBMonitoring resource. The Operator provisions the monitoring stack with ScyllaDB-specific dashboards.

TLS

Generate and distribute certificates, configure ScyllaDB to use them, and handle rotation.

Enable TLS in the spec. The Operator uses cert-manager to provision and rotate certificates automatically.

How it works¶

ScyllaDB Operator extends the Kubernetes API with CustomResourceDefinitions (CRDs) and runs controllers that continuously reconcile the desired state you declare with the actual state of the cluster.

The Operator ships as a single binary that includes:

  • Controllers that watch CRDs and create or update the underlying Kubernetes objects (StatefulSets, Services, ConfigMaps, Jobs, PodDisruptionBudgets, and more) that orchestrate the ScyllaDB clusters you define.

  • Admission webhooks that validate configuration correctness.

  • A sidecar that runs inside each ScyllaDB pod to configure and manage the ScyllaDB process.

  • Node setup agents that run on Kubernetes nodes to prepare disks and tune the host.

Single-DC and multi-DC deployment models¶

ScyllaCluster is the stable (scylla.scylladb.com/v1) API for deploying ScyllaDB on Kubernetes. Each ScyllaCluster resource represents a single datacenter. You define racks within the datacenter, and the Operator creates a StatefulSet per rack.

The Operator automates all single-datacenter operations: provisioning, scaling, upgrades, node replacement, tuning, repairs, backups, and monitoring.

Multi-datacenter clusters¶

To deploy a ScyllaDB cluster that spans multiple Kubernetes clusters or geographic regions, create one ScyllaCluster resource in each Kubernetes cluster and connect them using the externalSeeds field. Each ScyllaCluster must use the same .metadata.name (which becomes the ScyllaDB cluster name) and specify seed node addresses from the other datacenters in externalSeeds.

The Operator manages each datacenter independently. The following must be managed manually when using multiple ScyllaCluster resources for multi-datacenter deployments:

  • Seed configuration — the externalSeeds field of each ScyllaCluster must be populated with the node addresses of the other datacenters. These addresses must be kept up to date if nodes are replaced or IPs change.

  • ScyllaDB Manager auth token synchronization — when ScyllaDB Manager is deployed in one datacenter, its auth token Secret must be manually copied to each other datacenter and the Manager Agent pods restarted. See ScyllaDB Manager.

  • Replication factor configuration — keyspace replication factors must be updated via CQL after adding a new datacenter, using ALTER KEYSPACE.

  • Network peering and firewall rules — inter-cluster Pod-to-Pod connectivity must be configured at the infrastructure level.

Key user-facing resources¶

The Operator provides the following custom resources:

Resource

Scope

Purpose

ScyllaCluster

Namespaced

A ScyllaDB datacenter (one resource per DC; for multi-DC, create one per Kubernetes cluster and connect via externalSeeds)

NodeConfig

Cluster

Node-level disk setup, RAID, filesystem, and performance tuning

ScyllaOperatorConfig

Cluster

Global Operator configuration (images, cluster domain)

ScyllaDBMonitoring

Namespaced

Monitoring stack (Prometheus + Grafana) for ScyllaDB

ScyllaDBManagerTask

Namespaced

Backup or repair task managed by ScyllaDB Manager

The Operator also uses several internal CRD types under the hood to orchestrate operations such as datacenter management, Manager cluster registration, and bootstrap synchronisation. These are not intended for direct user interaction.

Supported platforms¶

ScyllaDB Operator is tested and supported on:

  • Google Kubernetes Engine (GKE) with Ubuntu node images

  • Amazon Elastic Kubernetes Service (EKS) with Amazon Linux node images

  • Oracle Kubernetes Engine (OKE)

  • Architectures: amd64 and arm64

For the full support matrix including supported Kubernetes versions, ScyllaDB versions, and known platform incompatibilities, see Releases.

Next steps¶

  • Install ScyllaDB Operator in your Kubernetes cluster.

  • Deploy your first cluster once the Operator is installed.

  • See a complete end-to-end walkthrough for GKE, EKS, or OpenShift.

  • Learn about the Operator’s architecture.

Was this page helpful?

PREVIOUS
Get Started
NEXT
ScyllaDB Concepts on Kubernetes
  • Create an issue
  • Edit this page

On this page

  • What Is ScyllaDB Operator?
    • What problems does it solve?
    • How it works
    • Single-DC and multi-DC deployment models
      • Multi-datacenter clusters
    • Key user-facing resources
    • Supported platforms
    • Next steps
ScyllaDB Operator
Search Ask AI
  • master
    • master
    • v1.21
    • v1.20
    • v1.19
    • v1.18
  • Get Started
    • What Is ScyllaDB Operator?
    • ScyllaDB Concepts on Kubernetes
  • Install Operator
    • Provision infrastructure
      • Set up a GKE cluster for ScyllaDB
      • Set up an EKS cluster for ScyllaDB
      • Set up an OKE cluster for ScyllaDB
      • Set up an OpenShift cluster for ScyllaDB
    • Install with GitOps
    • Install with Helm
    • Install on OpenShift
  • Deploy ScyllaDB
    • Before you deploy
      • Set up dedicated node pools
      • Configure CPU pinning
      • Configure nodes
      • Configure ScyllaDB Operator
    • Deploy your first cluster
    • Reference deployments
      • Reference deployment: GKE
      • Reference deployment: EKS
      • Reference deployment: OKE
      • Reference deployment: OpenShift
    • Install ScyllaDB Manager
    • Set up networking
      • Configure external access
      • IPv6 networking
        • Getting started with IPv6 networking
        • Configure dual-stack networking
        • Configure IPv6-only networking
        • Migrate clusters to IPv6
        • Troubleshoot IPv6 networking issues
        • IPv6 networking concepts
    • Set up monitoring
      • Set up ScyllaDB Monitoring
      • Set up ScyllaDB Monitoring on OpenShift
      • Expose Grafana
    • Production checklist
  • Connect Your App
    • Connect via CQL
    • Alternator (DynamoDB API)
    • Discovery endpoint
  • Understand
    • Storage
    • Tuning
    • ScyllaDB Manager
    • Networking
    • ScyllaDB Monitoring overview
    • Bootstrap synchronisation
    • Automatic data cleanup
    • Sidecar and pod anatomy
    • Ignition
    • Pod disruption budgets
    • Security
    • StatefulSets and racks
  • Operate
    • Scale, add, remove racks
    • Replace nodes
    • Expand storage volumes
    • Use maintenance mode
    • Back up and restore
    • Restore from backup
    • Perform a rolling restart
    • Migrate a rack to a new node pool
    • Pass additional ScyllaDB arguments
    • Configure precomputed IO properties
  • Upgrade
    • Upgrading ScyllaDB Operator
    • Upgrading ScyllaDB clusters
  • Troubleshoot
    • Investigate pod restarts
    • Change log level on a live cluster
    • Recover from a failed node replace
    • Troubleshoot performance
    • Collect debugging information
      • Collect data with must-gather
      • must-gather contents
      • Query system tables for debugging
    • Collect core dumps
  • Reference
    • API Reference
      • scylla.scylladb.com
        • NodeConfig (scylla.scylladb.com/v1alpha1)
        • RemoteKubernetesCluster (scylla.scylladb.com/v1alpha1)
        • RemoteOwner (scylla.scylladb.com/v1alpha1)
        • ScyllaCluster (scylla.scylladb.com/v1)
        • ScyllaDBCluster (scylla.scylladb.com/v1alpha1)
        • ScyllaDBDatacenterNodesStatusReport (scylla.scylladb.com/v1alpha1)
        • ScyllaDBDatacenter (scylla.scylladb.com/v1alpha1)
        • ScyllaDBManagerClusterRegistration (scylla.scylladb.com/v1alpha1)
        • ScyllaDBManagerTask (scylla.scylladb.com/v1alpha1)
        • ScyllaDBMonitoring (scylla.scylladb.com/v1alpha1)
        • ScyllaOperatorConfig (scylla.scylladb.com/v1alpha1)
    • Feature gates
    • IPv6 configuration reference
    • Releases
    • Known issues
    • Conditions reference
    • nodetool alternatives
  • Contributing to ScyllaDB Operator
Docs Tutorials University Contact Us About Us
© 2026, ScyllaDB. All rights reserved. | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 22 May 2026.
Powered by Sphinx 9.1.0 & ScyllaDB Theme 1.9.2