Upgrading a DataStax Enterprise Cluster With Zero Downtime
DataStax Mission Control is current in Private Preview. It is subject to the beta agreement executed between you and DataStax. DataStax Mission Control is not intended for production use, has not been certified for production workloads, and might contain bugs and other functional issues. There is no guarantee that DataStax Mission Control will ever become generally available. DataStax Mission Control is provided on an “AS IS” basis, without warranty or indemnity of any kind. If you are interested in trying out DataStax Mission Control please contact your DataStax account team. |
Apply and deploy a new version of DataStax Enterprise to an existing cluster. Modify the DSECluster manifest, updating the DSE version from 6.8.25 to 6.8.26.
Prerequisites
-
The
kubectl
CLI tool. -
Kubeconfig file` or
context
pointing to aControl Plane
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
DSECluster
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 versions follow the same process as configuration change deployments. See Deploying Configuration Changes to a DataStax Enterprise Cluster.
Procedure
-
Modify the existing DSECluster YAML (demo-dse.yaml) in the
Control Plane
Kubernetes cluster, overwriting the value6.8.25
in thespec.serverVersion
field with6.8.26
:apiVersion: missioncontrol.datastax.com/v1alpha1 kind: DSECluster metadata: name: demo spec: serverVersion: 6.8.26 ...
-
Submit the version change to the Kubernetes
Control Plane
cluster with the following command:kubectl apply -f demo-dse.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
Here is a partial sample of the 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".
What’s next
Users may trigger an Upgrade SSTables operation to rewrite SSTables into newer formats, if required.