ScyllaDB Operator 1.6

The ScyllaDB team is pleased to announce the release of ScyllaDB Operator 1.6.

ScyllaDB Operator is an open-source project that helps ScyllaDB Open Source and ScyllaDB Enterprise users run ScyllaDB on Kubernetes. The ScyllaDB Operator manages ScyllaDB clusters deployed to Kubernetes and automates tasks related to operating a ScyllaDB cluster, like installation, scale out and downscale, as well as rolling upgrades.

ScyllaDB Operator 1.6 improves stability and brings a few features. As with all of our releases, any API changes are backward compatible.

Performance Tuning [Experimental]

A major theme of this release was enhancing the performance to get closer to regular (non Kubernetes) deployments. ScyllaDB Operator can now tune the Kubernetes nodes and ScyllaDB containers running on them. To enable the tuning, a user needs to create a NodeConfig object holding the tuning configuration. Most importantly, a placement specification so the ScyllaDB Operator knows which Kubernetes Nodes are allowed to be tuned. The tuning consists of running perftune script for the Kubernetes nodes, configuring IRQ balancing and on-demand perftune for ScyllaDB containers. Note that only pods in the guaranteed class will be tuned, so double check your ScyllaDB cluster resources. A guaranteed class is also needed for kubelet static policy to give CPU core affinity. You can find out more details in the documentation.

The results show the new automated tuning can bring ScyllaDB performance on K8s close to ScyllaDB running on VMs. We are planning to publish the setup and results in a follow-up post soon.

API changes

  • A new CRD called `ScyllaDBOperatorConfig` allows users to configure the Operator global settings. This is v1alpha1 API and a subject to change.To find out more use> kubectl explain
  • A new CRD called `NodeConfig` allows users to tune Kubernetes nodes automatically. Note that node tuning is v1alpha1 API and the functionality is experimental. To enable Kubernetes node tuning you’d create a NodeConfig resource that matches the labels for the Kubernetes nodes to tune.To find out more use> kubectl explain

Notable Changes

  • ScyllaDBCluster now supports deploying multiple racks at once. Previously, racks had to be added one by one, after they bootstrapped. (#843)
  • We fixed the webhook availability issue with slight hiccups before KCM updated the endpoints. (#806)
  • ScyllaDB probe timeouts were increased to better handle responding under load. (#845)
    For more details check out the GitHub release notes.

Supported Versions

  • ScyllaDB Open Source ≥4.3
  • ScyllaDB Enterprise ≥2021.1
  • Kubernetes ≥1.19.10
  • ScyllaDB Manager ≥2.2
  • ScyllaDB Monitoring Stack ≥3.0

Upgrade Instructions

Upgrading from v1.5.x with `kubectl apply` doesn’t require any extra action, just take the manifest from v1.6.0 tag and substitute the released image. Using helm requires a mandatory manual step for every release because helm can’t handle CRDs updates. For details, see our upgrade documentation.

Getting Started with ScyllaDB Operator

  • ScyllaDB Operator Documentation
  • Learn how to deploy ScyllaDB on Google Kubernetes Engine (GKE) here
  • Learn how to deploy ScyllaDB on Amazon Elastic Kubernetes Engine (EKS) here
  • Learn how to deploy ScyllaDB on a Kubernetes Cluster here (including MiniKube example)

Related Links

We’ll welcome your feedback! Feel free to open an issue or reach out on the #kubernetes channel in ScyllaDB User Slack.

07  Dec 2021