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 Operate Use maintenance mode

Caution

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

Use maintenance mode¶

Temporarily remove a ScyllaDB node from service so you can perform maintenance operations — such as filesystem repairs, manual ScyllaDB restarts, or debugging — without Kubernetes killing the pod.

How it works¶

Each ScyllaDB pod has a corresponding member Service. When you add the scylla/node-maintenance label to this Service, the probe server running inside the pod changes its behaviour:

  • Readiness probe always returns failure — Kubernetes removes the pod from all Service endpoints and load balancers, so client traffic stops reaching the node.

  • Liveness probe always returns success — Kubernetes does not restart the pod, keeping it alive for you to interact with.

The pod remains running with full access to its storage and network. You can exec into the container, stop and start the ScyllaDB process, inspect or repair the filesystem, or perform any other maintenance task.

When you remove the label, the probe server resumes normal behaviour. The readiness probe begins checking ScyllaDB’s actual state again, and the pod is added back to Service endpoints once ScyllaDB reports itself as Up and Normal (UN) with native transport enabled.

Note

Maintenance mode is applied to the member Service, not the pod. The label key is scylla/node-maintenance and the value can be any string (an empty string is conventional).

Enable maintenance mode¶

Add the scylla/node-maintenance label to the member Service of the node you want to maintain.

For a ScyllaCluster named scylla in the scylla namespace, with the target node’s Service named scylla-us-east-1-us-east-1a-0:

kubectl -n scylla label svc scylla-us-east-1-us-east-1a-0 scylla/node-maintenance=""

Verify the node has been removed from endpoints:

kubectl -n scylla get endpoints scylla-client

The maintained node’s IP should no longer appear in the list.

Disable maintenance mode¶

Remove the label from the Service:

kubectl -n scylla label svc scylla-us-east-1-us-east-1a-0 scylla/node-maintenance-

The readiness probe resumes normal checks. Once ScyllaDB is up and accepting connections, Kubernetes adds the pod back to Service endpoints automatically.

Operator use during upgrades¶

The Operator enables maintenance mode automatically during ScyllaDB version upgrades. Before draining a node, the Operator patches the member Service to add the scylla/node-maintenance label. This prevents the liveness probe from failing while ScyllaDB is being drained (a drained node cannot respond to health checks normally).

After draining and backing up data, the Operator removes the label and deletes the pod. The StatefulSet controller creates a new pod running the upgraded ScyllaDB version.

You do not need to manage maintenance mode manually during upgrades — the Operator handles it as part of the upgrade workflow. For details, see Upgrade ScyllaDB.

Was this page helpful?

PREVIOUS
Expand storage volumes
NEXT
Back up and restore
  • Create an issue
  • Edit this page

On this page

  • Use maintenance mode
    • How it works
    • Enable maintenance mode
    • Disable maintenance mode
    • Operator use during upgrades
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