A Rook Ceph cluster. Ideally a ceph-object-realm resource would have been started up already.
The resource described in this design document represents the zone group in the Ceph Multisite data model.
When the storage admin is ready to create a multisite zone group for object storage, the admin will name the zone group in the metadata section on the configuration file.
In the config, the admin must configure the realm the zone group is in.
The first ceph-object-zone-group resource created in a realm is designated as the master zone group in the Ceph cluster.
This example ceph-object-zone-group.yaml
, names a zone group my-zonegroup
.
apiVersion: ceph.rook.io/v1alpha1
kind: CephObjectZoneGroup
metadata:
name: zone-group-a
namespace: rook-ceph
spec:
realm: my-realm
Now create the ceph-object-zone-group.
kubectl create -f ceph-object-zone-group.yaml
At this point the Rook operator recognizes that a new ceph-object-zone-group resource needs to be configured. The operator will start creating the resource to start the ceph-object-zone-group.
After these steps the admin should start up:
zoneGroup
section.realm
field, if it has not already been started up already.The order in which these resources are created is not important.
realm
section must be the same as the ceph-object-realm resource the zone group is a part of.At the moment creating an ceph-object-zone-group realm resource only handles Day 1 initial configuration for the realm.
Changes made to the resource's configuration or deletion of the resource are not reflected on the Ceph cluster.
To be clear, when the ceph-object-zone group resource is deleted or modified, the zone group is not deleted from the Ceph cluster. Zone Group deletion must be done through the toolbox.
The Rook toolbox can modify the Ceph Multisite state via the radosgw-admin command.
The following command, run via the toolbox, deletes the zone group.
# radosgw-admin zonegroup delete --rgw-zonegroup=zone-group-b
# radosgw-admin period update --commit
The ceph-object-zone-group settings are exposed to Rook as a Custom Resource Definition (CRD). The CRD is the Kubernetes-native means by which the Rook operator can watch for new resources.
The name of the resource provided in the metadata
section becomes the name of the zone group.
The following variables can be configured in the ceph-zone-group resource.
realm
: The realm named in the realm
section of the ceph-realm resource the zone group is a part of.
apiVersion: ceph.rook.io/v1alpha1
kind: CephObjectZoneGroup
metadata:
name: zone-group-b
namespace: rook-ceph
spec:
realm: my-realm