Upgrade a DataStax Enterprise (DSE) cluster With Zero Downtime

Apply and deploy a new version of DataStax Enterprise (DSE) to an existing cluster. Modify the MissionControlCluster manifest, updating the DSE version from 6.8.25 to 6.8.26.

Prerequisites

Example

The existing deployment consists of 1 datacenter (dc1) with 3 nodes, each node on a separate rack.

Workflow of user and operators

  1. User submits a modified MissionControlCluster manifest to the Control Plane Kubernetes cluster.

  2. Cluster-level operator detects the change and modifies the datacenter-level resource.

  3. Datacenter-level operator detects the change and modifies the rack-level resource.

  4. Datacenter-level operator terminates the instance in the rack.

  5. Datacenter-level operator bootstraps a replacement node.

  6. Datacenter-level operator repeats steps c-e for all racks in one datacenter.

  7. Cluster-level operator repeats steps b-e for all datacenters in a cluster, one dc at a time, in the case of a multi-datacenter cluster.

  8. User follows Upgrade SSTables steps, if required.

    Upgrades of DataStax Enterprise (DSE) versions follow the same process as configuration change deployments. See Deploying Configuration Changes to a DataStax Enterprise (DSE) Cluster.

Cluster upgrade with ZDM

  1. Modify the existing MissionControlCluster YAML (demo.yaml) in the Control Plane Kubernetes cluster, overwriting the value 6.8.25 in the spec.k8ssandra.cassandra.serverVersion field with 6.8.26:

    apiVersion: missioncontrol.datastax.com/v1beta1
    kind: MissionControlCluster
    metadata:
      name: demo
    spec:
      k8ssandra:
        cassandra:
          serverVersion: 6.8.26
    ...
  2. Submit the version change to the Kubernetes Control Plane cluster with the following command:

    kubectl apply -f demo.yaml

    The DSE version upgrade is done as a rolling update.

  3. Monitor the progress of the upgrade from the Data Plane east cluster, looking at the status of the CassandraDatacenter with this command:

    kubectl get cassandradatacenter dc1 -o yaml
    Sample results
    status:
      cassandraOperatorProgress: Updating
      conditions:
      - lastTransitionTime: "2022-10-20T16:07:10Z"
        message: ""
        reason: ""
        status: "True"
        type: Healthy
      - lastTransitionTime: "2022-10-20T16:07:10Z"
        message: ""
        reason: ""
        status: "False"
        type: Stopped
    ...

    The Updating conditions:status field value of "True" indicates that the update is in progress. Upon completion of the Updating operation, the Cass-Operator changes the Updating conditions.status field value to "False".

What’s next

Users may trigger an Upgrade SSTables operation to rewrite SSTables into newer formats, if required.

Was this helpful?

Give Feedback

How can we improve the documentation?

© 2024 DataStax | Privacy policy | Terms of use

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: +1 (650) 389-6000, info@datastax.com