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 Understand ScyllaDB Manager

ScyllaDB Manager¶

ScyllaDB Manager is a companion service that provides scheduled repairs and backups for ScyllaDB clusters. ScyllaDB Operator integrates with Manager so that you can define repair and backup tasks declaratively in your cluster spec, without interacting with Manager directly.

Deployment model¶

ScyllaDB Manager runs as a single, shared Deployment in the scylla-manager namespace. One Manager instance serves all ScyllaDB clusters in the Kubernetes cluster.

Manager requires a small ScyllaDB database to store its own state (task definitions, run history, cluster metadata). This is provided by a dedicated ScyllaCluster resource named scylla-manager-cluster in the scylla-manager namespace, running in developer mode with minimal resources (1 node, 1 CPU, 200 MiB memory).

Note

The backing ScyllaCluster has the annotation scylla-operator.scylladb.com/disable-global-scylladb-manager-integration: "true" to prevent it from being registered with the very Manager instance it supports.

Manager depends on ScyllaDB Operator — the Operator must be installed first because the backing cluster uses the ScyllaCluster CRD. Additionally, a NodeConfig must be applied and the ScyllaDB Local CSI Driver must be installed to provide storage for the backing cluster.

Manager Agent¶

Each ScyllaDB pod runs a ScyllaDB Manager Agent as a sidecar container. The Agent communicates with Manager to execute operations on the local node (streaming repair data, uploading backup snapshots to object storage, etc.).

The Agent:

  • Listens on port 10001.

  • Waits for ignition before starting — it does not run until ScyllaDB itself is ready.

  • Is configured through layered YAML config files and an auth token that the Operator manages automatically.

  • Uses the image specified by the agentVersion and agentRepository fields on the ScyllaCluster spec.

Task synchronisation¶

The Operator bridges your cluster spec to Manager tasks through a chain of internal resources.

ScyllaCluster defines backup and repair tasks inline:

spec:
  backups:
    - name: daily-backup
      location:
        - s3:my-bucket
      retention: 7
      cron: "0 2 * * *"
  repairs:
    - name: weekly-repair
      cron: "0 0 * * 0"

The ScyllaCluster controller translates each entry into a ScyllaDBManagerTask resource in the same namespace.

Reconciliation flow¶

  1. The Operator creates an internal ScyllaDBManagerClusterRegistration resource to register the cluster with Manager.

  2. The ScyllaDBManagerClusterRegistration controller calls the Manager REST API to register the cluster and stores the resulting cluster ID in its status.

  3. The ScyllaDBManagerTask controller reads the registration, then creates, updates, or deletes tasks in Manager via its REST API.

  4. Task statuses (run history, next run time, errors) are propagated back to the ScyllaDBManagerTask status and to the .status.backups and .status.repairs fields on the ScyllaCluster.

Disabling Manager integration¶

If you do not want a ScyllaCluster to be managed by the shared Manager instance, add the annotation:

metadata:
  annotations:
    scylla-operator.scylladb.com/disable-global-scylladb-manager-integration: "true"

This prevents the Operator from creating registration and task resources for that cluster.

Security¶

Because Manager is a shared instance, access to the scylla-manager namespace grants control over all registered clusters’ repair and backup tasks.

Caution

Only cluster administrators should have access to the scylla-manager namespace. Namespace-level RBAC should restrict non-admin users from viewing or modifying resources there.

The Manager Agent authenticates with Manager using an auth token. The Operator generates and distributes these tokens automatically — one per cluster — via Secrets in the cluster’s namespace.

A NetworkPolicy in the scylla-manager namespace allows Manager to reach the backing ScyllaDB cluster pods within that namespace.

Multi-datacenter Manager integration¶

In a multi-datacenter cluster built from multiple ScyllaCluster resources (one per Kubernetes cluster), ScyllaDB Manager must be deployed in only one datacenter. Manager communicates with all nodes across datacenters through the Manager Agent running in each pod.

Every ScyllaCluster is provisioned with a unique, randomly generated auth token stored in a Secret named <cluster>-auth-token. For Manager to manage nodes in all datacenters, every datacenter must use the same auth token. You must manually synchronize the token:

  1. Extract the token from the datacenter where Manager is deployed:

    kubectl --context="${CONTEXT_DC1}" -n=<namespace> get secrets/<cluster>-auth-token \
      --template='{{ index .data "auth-token.yaml" }}' | base64 -d
    
  2. Patch the token into each remote datacenter’s Secret:

    kubectl --context="${CONTEXT_DC2}" -n=<namespace> patch secret/<cluster>-auth-token \
      --type='json' \
      -p='[{"op": "add", "path": "/stringData", "value": {"auth-token.yaml": "<output-from-step-1>"}}]'
    
  3. Rolling restart the remote datacenter so the Agents pick up the new token:

    kubectl --context="${CONTEXT_DC2}" -n=<namespace> patch scyllacluster/<cluster> \
      --type='merge' \
      -p='{"spec": {"forceRedeploymentReason": "sync manager-agent auth token"}}'
    
  4. Define Manager tasks on the ScyllaCluster in the Kubernetes cluster where Manager is running.

Limitations¶

  • Restore is not yet available through the Operator’s declarative API. To restore from a Manager backup, you must exec into the Manager pod and use sctool directly. See Back up and restore.

  • There is one global Manager instance per Kubernetes cluster. Multi-tenancy isolation between clusters sharing the same Manager is limited to auth tokens.

  • Manager functionality beyond backup and repair (e.g., healthcheck configuration) is not yet exposed through CRDs.

Was this page helpful?

PREVIOUS
Tuning
NEXT
Networking
  • Create an issue
  • Edit this page

On this page

  • ScyllaDB Manager
    • Deployment model
    • Manager Agent
    • Task synchronisation
      • Reconciliation flow
    • Disabling Manager integration
    • Security
    • Multi-datacenter Manager integration
    • Limitations
ScyllaDB Operator
Search Ask AI
  • v1.21
    • 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