8. Requirements
則 Keystone support for multi tenancy /
authentication support
則 Cinder support for volume dynamic
provisioning / managing
則 QoS support to ensure performance for
public cluster
則 Easy to manage, customize, deploy
9. Public Rbd Plugin
Kubernetes In-tree Provisioner / Ceph CSI Plugin
則 Ceph standalone
則 Version dependency
則 Multi tenancy not supported
則 Customization / Upgrade
issue
https://kubernetes.io/ko/docs/concepts/storage/volumes/#rbd
https://github.com/ceph/ceph-csi
11. Flexvolume Plugin
則 Fully Customizable 則 Simple Architecture
Attach
則 Check if volume is multi mapped
則 Check volume status
則 RBD map option
...
MountDevice
則 Mount option
Mount
Unmount, UmountDevice
Expandfs
Simple Driver
Binary
Plugin Directory
Kubelet
Node1
Node2 Node3
12. 3 _ NAVER Rbd Plugin
Multi Tenancy 讌 揃 Multi Map 揃 レ 揃 Storage Watcher 揃 Filesystem Trim 揃 Volume QoS 揃 覈磯
13. Multi Tenancy 讌
Kubernetes
Blog Namespace Band Namespace
Cafe Namespace
Blog Project
Cafe Project
Band Project
煙
レ
USERS OPENSTACK
TENANTS
14. Multi Tenancy 讌
Create RBD Volume to proper tenant
For user who can access with right permission
則 Cronjob
則 Openstack ceph role can
manage specific tenants
volume
則 Cronjob assign ceph role for
newly created tenant
則 Provisioner
則 Namespace have tenant id
annotation
則 Provisioner provision create
volume in users tenant
dynamically