fbpx
See all blog posts

Using Helm Charts to Deploy Scylla on Kubernetes

Modern deployments are kept as code, and it is very common that development, staging and production environments differ only in a few properties like allocated resources. When Kubernetes is used as infrastructure, duplication of manifests for all types of deployments may be error prone. That’s why Helm templates are quite popular these days.

With Scylla Operator 1.1 we introduced three Helm Charts which will help you to deploy and customize Scylla products using Helm.

Helm Charts

Helm Charts are templated Kubernetes manifests combined into a single package that can be installed on your Kubernetes cluster. Once packaged, installing a Helm Chart into your cluster is as easy as running a single helm install command.

Release 1.1 provides three Helm Charts:

  • scylla-operator
  • scylla-manager
  • scylla

As the name suggests, each of them allows to customize and deploy one of the Scylla products.

Helm Charts are shipped in two release channels:

  • “latest” channel as the name suggests contains the latest charts built after each merge and published on every successful end-to-end tests run.
  • “stable” channel contains only charts which are released and approved by the QA team.

Note: only stable charts should be used in production environments. 

Users can override default parameters when installing the chart to suit their needs or if the simplicity is required, they can use values provided by us.

Deploy with a Few Clicks

Using Helm Scylla can be installed in a matter of minutes. First we need to install Scylla Operator and its dependencies. To add Scylla Chart repository to Helm registry and update it execute the following commands:

helm repo add scylla https://scylla-operator-charts.storage.googleapis.com/stable

helm repo update

One Scylla Operator dependency is Cert Manager. You can either install it using Helm from their Chart repository, or use a static copy stored in our GitHub repository:

kubectl apply -f https://github.com/scylladb/scylla-operator/blob/master/examples/common/cert-manager.yaml

To install Scylla Operator use:

helm install scylla-operator scylla/scylla-operator --create-namespace --namespace scylla-operator

Now you’re ready to deploy the Scylla cluster. Let’s deploy a default single rack cluster just to play around with it.

helm install scylla scylla/scylla --create-namespace --namespace scylla

That’s it! Scylla Operator will coordinate each node joining cluster, and soon your 3 node cluster should be ready to serve traffic. To check your Scylla pods, use the following:

kubectl -n scylla get pods -l "app.kubernetes.io/name=scylla"

Customization

Often default values aren’t what you need. That’s where the Helm template comes in and solves the problem. You can either use the --set parameter to set individual parameters or provide a yaml file with more values you want to overwrite.

Let’s say we want to deploy a 6 node Scylla cluster suitable for i3.xlarge instances and spread these instances between two racks.

datacenter: "us-east-1"
racks:
- name: "us-east-1a"
  members: 3
  storage:
    capacity: 800Gi
  resources:
    limits:
      cpu: 3
      memory: 24Gi
    requests:
      cpu: 3
      memory: 24Gi
- name: "us-east-1b"
  members: 3
  storage:
    capacity: 800Gi
  resources:
    limits:
      cpu: 3
      memory: 24Gi
    requests:
      cpu: 3
      memory: 24Gi

To preview what manifests will be generated, you can append --dry-run parameter to install command.

If you’re satisfied with the output you can append the name of the file to helm install command:

helm install scylla scylla/scylla --create-namespace --namespace scylla -f 6_i3xlarge.yaml

To find out all available parameters you can check the Helm Chart source code available in Scylla Operator repository.

Summary

As you can see, we are constantly moving forward in order to make Scylla Operator as good as possible. If you find any issues, make sure to report them so we can fix them in one of the next releases.

FAQs

Where I can find Scylla Helm Charts?

There are two repositories for each of the release channels. To add them to helm, use:

Source code of Helm Charts is available in Scylla Operator GitHub repository.

How to upgrade my existing deployment using Scylla Operator 1.0?

You can find the upgrade procedure in Scylla Operator documentation.

Do I have to use Helm to deploy Scylla Operator?

No! It’s just an option. We also provide static Yaml manifests which can be used to deploy Scylla Operator and others. Check out our GitHub repository or documentation for details.

Can I use Scylla Manager for free?

Yes. Scylla Manager is available for free for Scylla Enterprise customers and Scylla Open Source users. However, with Scylla Open Source NoSQL Database, Scylla Manager is limited to 5 nodes. See the Scylla Manager Proprietary Software License Agreement for details.

GET STARTED WITH SCYLLA OPERATOR

Maciej Zimnoch

About Maciej Zimnoch

Maciej is a Go and C++ enthusiast. He is a software engineer working on Scylla management tools. Previously he worked in network companies where he delivered multiple features to SDN solutions and LTE networks.