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
-
A prepared environment on either bare-metal/VM or an existing Kubernetes cluster.
Example
The existing deployment consists of 1 datacenter (dc1
) with 3 nodes, each node on a separate rack.
Workflow of user and operators
-
User submits a modified
MissionControlCluster
manifest to theControl Plane
Kubernetes cluster. -
Cluster-level operator detects the change and modifies the datacenter-level resource.
-
Datacenter-level operator detects the change and modifies the rack-level resource.
-
Datacenter-level operator terminates the instance in the rack.
-
Datacenter-level operator repeats steps c-e for all racks in one datacenter.
-
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.
-
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
-
Modify the existing MissionControlCluster YAML (demo.yaml) in the
Control Plane
Kubernetes cluster, overwriting the value6.8.25
in thespec.k8ssandra.cassandra.serverVersion
field with6.8.26
:apiVersion: missioncontrol.datastax.com/v1beta2 kind: MissionControlCluster metadata: name: demo spec: k8ssandra: cassandra: serverVersion: 6.8.26 ...
-
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.
-
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 theUpdating
operation, the Cass-Operator changes theUpdating
conditions.status
field value to "False".
See also
You can trigger an Upgrade SSTables operation to rewrite SSTables into newer formats, if required.