Rook turns distributed storage systems into self-managing, self-scaling, self-healing storage services. It automates the tasks of a storage administrator: deployment, bootstrapping, configuration, provisioning, scaling, upgrading, migration, disaster recovery, monitoring, and resource management.
Rook uses the power of the Kubernetes platform to deliver its services via a Kubernetes Operator for each storage provider.
Oleg Chunikhin, Co-Founder and CTO @ Kublr.com, will present an introduction to storage management on k8s using Rook and Ceph.
2. Oleg Chunikhin
CTO, Kublr
• 25 years in software architecture & development
• Working w/ Kubernetes since its release in 2015
• Software architect behind Kublr—an enterprise
ready container management platform
• @olgch
Introductions
11. Storage: Rook / Ceph
Data pool
mon
mon
mon
config
data
raw data
osd
raw data
osd
raw data
mds
osd
Data pool
Image Image
Ceph
Filesystem
Components
Abstractions
Ceph
rgw
S3/Swift
Object Store
mgr
Rook
Operator
CSI plugins
osd
osd
ganesha
NFS
CephCluster
Block Pool
Object Store
Filesystem
NFS
Object Store User
Provisioners
rbd-mirror
12. Stack Definition
SOURCE TYPE DESCRIPTION
Infrastructure Specification Virtual Machines, Networks, Disks, etc
Cloud Formation, ARM Templates, Terraform, Kublr
Kubernetes Specification Cluster topology, masters and workers number, groups, K8S components configuration, versions
System/support Software
Specification
Kubernetes system components: e.g. overlay network, DNS, etc
(Self-)managed application services: Cloud Native Storage (Ceph/Rook), DB (Vitess),
Messaging (Strimzi/Kafka, Nats), API Management (Ambassador, Kong), etc
DevOps tools: CI (Jenkins), CD (Spinnaker), Repositories (Nexus, Artifactory) etc
Provisioning scripts Provisioning procedures and processes: shell, Makefile, Jenkinsfile, CircleCI etc
16. Kubernetes Persistence
Kubernetes Cluster
Namespace
Pod
Container 1 Container 2
Volume
Volume
Mount
Volume
Device
“actual”
storage
Persistent Volume
Volume
Claim
Spec
Spec
2 PVC with SC
5 Pod reference PVC
1 Storage Class
Storage
Class
Provisioner
3
Provision storage
Create PV
4 PVC bound to PV
17. Demo: RBD and CephFS
Data pool
Image
Data pool
mon
mon
mon
config
data
raw data
osd
raw data
osd
raw data
mds
osd
Data pool
Image Image
Ceph Filesystem
Data pool (data)
Data pool (md)
PV
Pod
PVC
PV
Pod
PVC
PV
Pod
PVC
PV
PVC
Pod Pod
Pod
sub-volumes
Rook
Operators
CephBlockPool
CephBlockPool CephFilesystem
StorageClass StorageClass
18. Demo: Mirroring
Data pool
Image
mon
mon
mon
config
data
raw data
osd
raw data
osd
raw data
osd
Data pool
Image
PV
Pod
PVC
rbd-mirror
Rook
Operators
Data pool
Image
mon
mon
mon
config
data
raw data
osd
raw data
osd
raw data
osd
Data pool
Image
PV
Pod
PVC
rbd-mirror
Rook
Operators
primary replay
CephBlockPool
mirroring:
enabled:
true
mode: image
peers: ...
CephBlockPool
mirroring:
enabled:
true
mode: image
peers: ...
VolumeReplicationClass VolumeReplicationClass
VolumeReplication VolumeReplication