Scylla Operator 1.6

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

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

Scylla 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. Scylla Operator can now tune the Kubernetes nodes and Scylla 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 Scylla 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 Scylla containers. Note that only pods in the guaranteed class will be tuned, so double check your Scylla 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 Scylla performance on K8s close to Scylla running on VMs. We are planning to publish the setup and results in a follow-up post soon.

API changes

  • A new CRD called `ScyllaOperatorConfig` allows users to configure the Operator global settings. This is v1alpha1 API and a subject to change.To find out more use> kubectl explain scyllaoperatorconfigs.scylla.scylladb.com/v1alpha1
  • 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 nodeconfigs.scylla.scylladb.com/v1alpha1

Notable Changes

  • ScyllaCluster 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)
  • Scylla probe timeouts were increased to better handle responding under load. (#845)
    For more details check out the GitHub release notes.

Supported Versions

  • Scylla Open Source ≥4.3
  • Scylla Enterprise ≥2021.1
  • Kubernetes ≥1.19.10
  • Scylla Manager ≥2.2
  • Scylla 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 Scylla Operator

  • Scylla Operator Documentation
  • Learn how to deploy Scylla on Google Kubernetes Engine (GKE) here
  • Learn how to deploy Scylla on Amazon Elastic Kubernetes Engine (EKS) here
  • Learn how to deploy Scylla 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 Scylla User Slack.

07  Dec 2021