Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rook v1.1なら出来るPVC-basedな分散ストレージ

Cd891a89dfec6ca7bd278b5f5bd87c90?s=47 tzkoba
November 11, 2019

Rook v1.1なら出来るPVC-basedな分散ストレージ

2019/11/13のKubernetes Meetup Tokyo #25のLT資料です。

Cd891a89dfec6ca7bd278b5f5bd87c90?s=128

tzkoba

November 11, 2019
Tweet

Transcript

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

  2. 2 最近やっていること • PGConf.Asia 2019 “Building PostgreSQL as a Service

    with Kubernetes” • PostgreSQL Conference Japan 2019 “Kubernetesでつくる PostgreSQL as a Service” + =∞
  3. 3 今日はストレージ の話をします。

  4. 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
  5. 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も移動不可。
  6. 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が作成される。
  7. 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
  8. 9 参考)Raw Block Volumeとは https://qiita.com/tzkoba/items/fb9ccab311b8d7956a6f

  9. 10 PVC-basedなRook/Cephのユースケース • KubernetesによるStorage as a Serviceの実現に近づく。 • Storageを抽象化、CSIで外部 へVolumeを提供。

    • STaaS内ではNodeとVolumeが 分離され、復元力が高い。 << 課題 >> • Storageが機能過多(=高コスト) • コントローラはCephが担当、 データを冗長化&分散。 STaaS
  10. 11 (告知) Japan Rook Meetup、やります!!