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.
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.
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/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.yamlkubectl@adm >
kubectl -n rook-ceph set image deploy/rook-ceph-operator registry.suse.com/ses/7.1/rook/ceph:version-numberUpgrade 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\"}}}"Mark the Ceph cluster to only support the updated version:
# from a ceph-toolbox
#
ceph osd require-osd-release version-name
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.
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.
Update common resources and CRDs.
Update Ceph CSI versions.
Update the Rook Operator.
Wait for the upgrade to complete and verify the updated cluster.
Update
CephRBDMirror
andCephBlockPool
configuration options.