Upgrading DataCore Puls8

Explore this Page

Overview

DataCore Puls8 supports in-place upgrades to deliver new features, performance enhancements, and stability improvements while preserving existing storage resources and configurations.

The DataCore Puls8 upgrade is a two-phase process:

  • Phase 1: Control-Plane Upgrade (Helm upgrade)
    • Updates the Puls8 control-plane components without interrupting storage I/O.
  • Phase 2: Data-Plane Upgrade (Replicated PV Mayastor io-engine restart)
    • Restarts Replicated PV Mayastor io-engine pods one at a time. After each restart, the DataCore Puls8 upgrade job waits for volume replica rebuilds to complete before proceeding to the next node. This ensures data availability for multi-replica Replicated PV Mayastor volumes.
    • After each io-engine restart:
      • Replica rebuild begins
      • The upgrade waits until the rebuild completes
      • The upgrade proceeds to the next node
    • The upgrade duration depends on:
      • Volume size
      • Number of nodes
      • Storage performance
      • Network performance

This document describes how to upgrade DataCore Puls8 from version 4.3 to version 4.4. It includes upgrade requirements, pre-upgrade validation, upgrade procedure, and post-upgrade verification.

Upgrading to DataCore Puls8 4.4 provides access to the latest features, enhancements, and stability improvements.

Downgrading DataCore Puls8 to a previous version is not supported.

Upgrade DataCore Puls8

Upgrade DataCore Puls8 to apply the new version to control-plane and data-plane components. The upgrade is performed as a rolling operation, ensuring storage resources and data remain preserved while the new version is applied.

  1. Verify kubectl puls8 plugin version.
    Copy
    Verify Installed kubectl puls8 Plugin Version
    kubectl puls8 -V

    Ensure plugin version matches desired target version.

  2. Start the DataCore Puls8 upgrade.
    Copy
    Start the Puls8 Upgrade to the Target Version
    kubectl puls8 upgrade -n <namespace>

    This initiates both control-plane and data-plane upgrades.

    The upgrade automatically restarts Replicated PV Mayastor io-engine pods sequentially.

  3. Monitor upgrade progress.
    Copy
    Monitor the Upgrade Process Until it Completes
    kubectl puls8 upgrade status -n <namespace>
  4. View the detailed upgrade logs. (Optional)
    Copy
    View Upgrade Logs
    kubectl logs -n <namespace> job/puls8-upgrade-v4-4-0 -f
  5. Cleanup Upgrade Resources. (Optional)
    Copy
    Remove Upgrade Resources After Successful Completion
    kubectl puls8 upgrade delete -n <namespace>

Troubleshooting

Common upgrade issues include:

  • Validation failures during upgrade
  • If the upgrade fails during validation, configuration issues, unhealthy storage resources, or cluster state conditions may be preventing the upgrade from proceeding. DataCore Puls8 waits for rebuild completion before proceeding to ensure data redundancy and consistency.

    Copy
    View Upgrade Job Logs for Validation Errors
    kubectl logs -n <namespace> job/puls8-upgrade-v4-4-0

    Resolve the reported issue before retrying the upgrade.

  • Version mismatch between plugin and installed Puls8 version
  • If the upgrade fails due to a version mismatch, the installed kubectl puls8 plugin version may not match the intended target version or may be older than the installed Puls8 version.

    Copy
    Verify Both Plugin and Installed Puls8 Versions
    # Verify kubectl puls8 plugin version
    kubectl puls8 -V
    # Verify installed Puls8 version
    helm get metadata <release-name> -n <namespace>

    Install the appropriate plugin version before retrying the upgrade.

  • Image pull errors caused by registry access restrictions
  • If the upgrade fails due to container image pull errors, the cluster may not have access to the default container registry or repository. In such cases, explicitly specify the container registry and repository namespace when running the upgrade command using the following options:

    Copy
    Override Container Registry and Repository Namespace for the Upgrade
    --registry <REGISTRY>
        Specify the container registry for the upgrade-job image
    --repo-namespace <REPO_NAMESPACE>
        Specify the container namespace for the upgrade-job image
        (default: datacoresoftware)
  • Namespace discrepancies when running upgrade commands
  • If the upgrade fails due to namespace mismatches, ensure that all kubectl puls8 commands explicitly specify the namespace where DataCore Puls8 is installed. Use the -n <namespace> flag consistently with all upgrade commands, for example:

    Copy
    Example
    kubectl puls8 upgrade -n <namespace>

    Replace <namespace> with the namespace in which DataCore Puls8 is deployed.

  • Upgrade stuck during replica rebuild
  • If the upgrade pauses for an extended period, it may be waiting for volume replica rebuilds to complete. DataCore Puls8 waits for rebuild completion before proceeding to ensure data redundancy and consistency.

    Copy
    Monitor Volume Health and Rebuild Progress
    kubectl puls8 mayastor get volumes -n <namespace>

    Wait until all volumes report a Healthy state and rebuild operations are complete.

  • Cleanup stuck upgrade resources
  • If the upgrade does not complete successfully, the upgrade Kubernetes resources cannot be removed using the standard cleanup command. In such cases, use the force option to forcibly delete the upgrade resources.

    Copy
    Force Cleanup Upgrade Resources
    kubectl puls8 upgrade delete -n <namespace> --force
  • View upgrade logs for debugging
  • To diagnose upgrade failures or monitor upgrade activity, review the upgrade job logs:

    Copy
    Inspect Puls8 Upgrade Job Logs
    kubectl logs -n <namespace> job/puls8-upgrade-v4-4-0 -f

    These logs provide detailed information about upgrade progress, validation failures, and component status.

Best Practices

Follow these best practices to ensure a safe upgrade:

  • Install the correct plugin version first
  • Test upgrade in non-production environment
  • Use multi-replica volumes for critical workloads
  • Schedule maintenance window
  • Notify application owners
  • Monitor rebuild progress
  • Do not interrupt upgrade during rebuild

Learn More