Slide 1

Slide 1 text

@tzkb Rook v1.1なら出来る! PVC-basedな分散ストレージ Kubernetes Meetup Tokyo #25 , 2019/11/13

Slide 2

Slide 2 text

2 最近やっていること • PGConf.Asia 2019 “Building PostgreSQL as a Service with Kubernetes” • PostgreSQL Conference Japan 2019 “Kubernetesでつくる PostgreSQL as a Service” + =∞

Slide 3

Slide 3 text

3 今日はストレージ の話をします。

Slide 4

Slide 4 text

4 9/13、Rook v1.1がリリース! 以下の新機能が追加された。 • PVC-based OSDs/MONs • external Ceph cluster • Dynamic Bucket Provisioning • EdgeFS to v1 stable • YugaByte DB 現在、最新版はv1.1.6

Slide 5

Slide 5 text

5 PVC-basedとはどういうことか? Node Node (右) PVC-based • v1.1から。 • MON/OSDは PVC経由で外部 ストレージを アタッチ。 • 特別なNodeは 不要になる。 • Pod移動時にPVが 追随できる。 OSD MON OSD MON operator agent/discover operator agent/discover (左) Host-based • 従来型。 • MON/OSDは Node上のdirを 参照。 • Workerに RAWデバイスが 必要。 • dirは移動できず、 Podも移動不可。

Slide 6

Slide 6 text

7 やってみた、PVC-based Rook/Ceph(1) $ kubectl get -n rook-ceph pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE rook-ceph-mon-a Bound pvc-54e63d13-d0b5-XXX 10Gi RWO gp2 2d rook-ceph-mon-b Bound pvc-42a7bdb4-5caf-XXX 10Gi RWO gp2 2d rook-ceph-mon-c Bound pvc-b1c81bca-000f-XXX 10Gi RWO gp2 2d set1-0-data-mfp9t Bound pvc-7942ac5e-765a-XXX 10Gi RWO gp2 2d set1-1-data-2shjq Bound pvc-1042ebf7-c194-XXX 10Gi RWO gp2 2d set1-2-data-pcjqd Bound pvc-586ae884-d853-XXX 10Gi RWO gp2 2d • MONで3つ、OSDで3つのPV/PVCが作成される。

Slide 7

Slide 7 text

8 やってみた、PVC-based Rook/Ceph(2) $ kubectl describe -n rook-ceph pvc set1-0-data-mfp9t Name: set1-0-data-mfp9t Namespace: rook-ceph StorageClass: gp2 Status: Bound Volume: pvc-7942ac5e-765a-409f-xxx Labels: ceph.rook.io/DeviceSet=set1 ceph.rook.io/DeviceSetPVCId=set1-0 ceph.rook.io/setIndex=0 Annotations: pv.kubernetes.io/bind-completed: yes pv.kubernetes.io/bound-by-controller: yes volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/aws-ebs Finalizers: [kubernetes.io/pvc-protection] Capacity: 10Gi Access Modes: RWO VolumeMode: Block Mounted By: rook-ceph-osd-1-5dd48685fd-48tj8 rook-ceph-osd-prepare-set1-0-data-mfp9t-nw48q • Raw Block Volumeが使われている。 普通はここがFileSystem

Slide 8

Slide 8 text

9 参考)Raw Block Volumeとは https://qiita.com/tzkoba/items/fb9ccab311b8d7956a6f

Slide 9

Slide 9 text

10 PVC-basedなRook/Cephのユースケース • KubernetesによるStorage as a Serviceの実現に近づく。 • Storageを抽象化、CSIで外部 へVolumeを提供。 • STaaS内ではNodeとVolumeが 分離され、復元力が高い。 << 課題 >> • Storageが機能過多(=高コスト) • コントローラはCephが担当、 データを冗長化&分散。 STaaS

Slide 10

Slide 10 text

11 (告知) Japan Rook Meetup、やります!!