A recent PR #4172 added the ability for rook to create the CSIDriver object on a kubernetes cluster. The change also made it so that attachRequired value in the ceph CSI drivers were set to false. This leads to the entire attach skipping the AD controller that deals with RWO attachment enforcement. Thus, if a CephFS volume is marked RWO, 2 pods on different hosts can end up mounting the same and consuming it at the same time. Further for RBD, currently the image watchers are the only ones that prevent a double mount of an image, other than the AD controller enforcement of single attach for RWO RBD PVs. This has proven not to be reliable in the face of MON failures, as the watcher information is lost, and a second mount is allowed. Thus, we need to bring back the attach requirement to leverage kubernetes checks and balances for RWO volume type, and prevent unwanted multi-attach use of the same. This PR hence undoes some of the changes introduced by the PR #4172, to bring the attacher side car back, and also declare the attachRequired for both RBD and CephFS CSI plugins as true. NOTE: Initially the attachRequired was set to false as this improved attach times considerably on kubernetes, as the entire phase was being avoided. Signed-off-by: ShyamsundarR <srangana@redhat.com>
Rook
Rook is an open source cloud-native storage orchestrator, providing the platform, framework, and support for a diverse set of storage solutions to natively integrate with cloud-native environments.
Rook turns storage software into self-managing, self-scaling, and self-healing storage services. It does this by automating deployment, bootstrapping, configuration, provisioning, scaling, upgrading, migration, disaster recovery, monitoring, and resource management. Rook uses the facilities provided by the underlying cloud-native container management, scheduling and orchestration platform to perform its duties.
Rook integrates deeply into cloud native environments leveraging extension points and providing a seamless experience for scheduling, lifecycle management, resource management, security, monitoring, and user experience.
For more details about the status of storage solutions currently supported by Rook, please refer to the project status section of the Rook repository. We plan to continue adding support for other storage systems and environments based on community demand and engagement in future releases.
Quick Start Guides
Starting Rook in your cluster is as simple as a few kubectl commands depending on the storage provider.
See our Quickstart guide list for the detailed instructions for each storage provider.
Storage Provider Designs
High-level Storage Provider design documents:
| Storage Provider | Status | Description |
|---|---|---|
| Ceph | Stable | Ceph is a highly scalable distributed storage solution for block storage, object storage, and shared filesystems with years of production deployments. |
| EdgeFS | Stable | EdgeFS is high-performance and fault-tolerant object storage system with Geo-Transparent data access to file, block or object. |
Low level design documentation for supported list of storage systems collected at design docs section.
Need help? Be sure to join the Rook Slack
If you have any questions along the way, please don't hesitate to ask us in our Slack channel. You can sign up for our Slack here.