Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
documentation.suse.com / SUSE Enterprise Storage 7.1 Documentation / Deploying and Administering SUSE Enterprise Storage with Rook / Quick Start: Deploying and Upgrading Ceph on SUSE CaaS Platform / Updating Rook
Applies to SUSE Enterprise Storage 7.1

2 Updating Rook

This chapter describes how to update containerized SUSE Enterprise Storage 7 on top of a SUSE CaaS Platform 4.5 Kubernetes cluster.

This chapter takes you through the steps to update the software in a Rook-Ceph cluster from one version to the next. This includes both the Rook-Ceph Operator software itself as well as the Ceph cluster software.

Note
Note

Version

2.1 Recommended hardware specifications

For SUSE Enterprise Storage deployed with Rook, the minimal configuration is preliminary, we will update it based on real customer needs.

For the purpose of this document, consider the following minimum configuration:

  • A highly available Kubernetes cluster with 3 master nodes

  • Four physical Kubernetes worker nodes, each with two OSD disks and 5 GB of RAM per OSD disk

  • Allow additional 4 GB of RAM per additional daemon deployed on a node

  • Dual-10 Gb ethernet as bonded network

  • If you are running a hyper-converged infrastructure (HCI), ensure you add any additional requirements for your workloads.

2.2 Patch release upgrades

To update a patch release of Rook to another, you need to update the common resources and the image of the Rook Operator.

  1. Get the latest common resource manifests that contain the relevant changes to the latest version:

    > zypper in rook-k8s-yaml
    > cd /usr/share/k8s-yaml/rook/ceph/
  2. Apply the latest changes from the next version and update the Rook Operator image:

    kubectl@adm > helm upgrade -n rook-ceph rook-ceph ./rook-ceph/ -f myvalues.yaml
    kubectl@adm > kubectl -n rook-ceph set image deploy/rook-ceph-operator registry.suse.com/ses/7.1/rook/ceph:version-number
  3. Upgrade the Ceph version:

    kubectl@adm > kubectl -n ROOK_CLUSTER_NAMESPACE patch CephCluster CLUSTER_NAME --type=merge -p "{\"spec\": {\"cephVersion\": {\"image\": \"registry.suse.com/ses/7.1/ceph/ceph:version-number\"}}}"
  4. Mark the Ceph cluster to only support the updated version:

    # from a ceph-toolbox
    # ceph osd require-osd-release version-name
Note
Note

We recommend updating the Rook-Ceph common resources from the example manifests before any update. The common resources and CRDs might not be updated with every release, but K8s will only apply updates to the ones that changed.

2.3 Rook-Ceph Updates

This is a general guide for updating your Rook cluster. For detailed instructions on updating to each supported version, refer to the upstream Rook upgrade documentation: https://rook.io/docs/rook/v1.8/ceph-upgrade.html.

To successfully upgrade a Rook cluster, the following prerequisites must be met:

  • Cluster health status is healthy with full functionality.

  • All pods consuming Rook storage should be created, running, and in a steady state.

Each version upgrade has specific details outlined in the Rook documentation. Use the following steps as a base guideline.

Note
Note

These methods should work for any number of Rook-Ceph clusters and Rook Operators as long as you parameterize the environment correctly. Merely repeat these steps for each Rook-Ceph cluster (ROOK_CLUSTER_NAMESPACE), and be sure to update the ROOK_OPERATOR_NAMESPACE parameter each time if applicable.

  1. Update common resources and CRDs.

  2. Update Ceph CSI versions.

  3. Update the Rook Operator.

  4. Wait for the upgrade to complete and verify the updated cluster.

  5. Update CephRBDMirror and CephBlockPool configuration options.