Links
Comment on page

Upgrade

Mayastor supports seamless upgrades starting with target version 2.1.0 and later, and source versions 2.0.0 and later. To upgrade from a previous version(1.0.5 or prior) to 2.1.0 or later, visit Legacy Upgrade Support.

Supported upgrade paths

  • From 2.0.x to 2.4.0
  • The upgrade operation utilises the Mayastor Kubectl Plugin.
  • The upgrade process is generally non-disruptive for volumes with a replication factor greater than 1 and all replicas being healthy, prior to starting the upgrade.
To upgrade Mayastor deployment on the Kubernetes cluster, execute:
kubectl mayastor upgrade
To view all the available options and sub-commands that can be used with the upgrade command, execute:
Command
Expected Output
kubectl mayastor upgrade -h
`Upgrade` the deployment
Usage: kubectl-mayastor upgrade [OPTIONS]
Options:
  -d, --dry-run
          Display all the validations output but will not execute upgrade
  -r, --rest <REST>
          The rest endpoint to connect to
  -D, --skip-data-plane-restart
          If set then upgrade will skip the io-engine pods restart
  -k, --kube-config-path <KUBE_CONFIG_PATH>
          Path to kubeconfig file
  -S, --skip-single-replica-volume-validation
          If set then it will continue with upgrade without validating singla replica volume
  -R, --skip-replica-rebuild
          If set then upgrade will skip the repilca rebuild in progress validation
  -C, --skip-cordoned-node-validation
          If set then upgrade will skip the cordoned node validation
  -o, --output <OUTPUT>
          The Output, viz yaml, json [default: none]
  -j, --jaeger <JAEGER>
          Trace rest requests to the Jaeger endpoint agent
  -n, --namespace <NAMESPACE>
          Kubernetes namespace of mayastor service, defaults to mayastor [default: mayastor]
  -h, --help
          Print help
To view the status of upgrade, execute:
Command
Expected Output
kubectl mayastor get upgrade-status
Upgrade From: 2.0.0
Upgrade To: 2.4.0
Upgrade Status: Successfully upgraded Mayastor
To view the logs of upgrade job, execute:
kubectl logs <upgrade-job-pod-name> -n <mayastor-namespace>
  1. 1.
    The time taken to upgrade is directly proportional to the number of Mayastor nodes and Mayastor volumes.
  2. 2.
    To upgrade to a particular Mayastor version, ensure you are using the same version of kubectl plugin.
  3. 3.
    The above process of upgrade creates one Job in the namespace where Mayastor is installed, one ClusterRole, one ClusterRoleBinding and one ServiceAccount.