Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rook v1.1を使おう!新機能の紹介
Search
tzkoba
November 26, 2019
Technology
2
510
Rook v1.1を使おう!新機能の紹介
【前夜祭】CloudNative Days Kansai 2019 MeetupのLT用スライドです。
tzkoba
November 26, 2019
Tweet
Share
More Decks by tzkoba
See All by tzkoba
The State of Distibuted Database In Japan
tzkoba
1
1.4k
#CloudNativeDB NewSQLへの誘い
tzkoba
4
3.3k
Cloud Native時代のデータベース
tzkoba
13
15k
2020年DBプラットフォーム (超個人的)5大ニュース
tzkoba
0
1.2k
PostgreSQLプラットフォームの徹底比較(コンテナからクラウドまで)
tzkoba
6
11k
Kubernetesでストレージ?そもそも何に使えるの?
tzkoba
0
1.3k
データ損失を回避しよう 各DBの機能比較
tzkoba
3
2.1k
昨今のデータデバイス(アーカイブ編)
tzkoba
3
1.7k
理解して拡げる分散システムの基礎知識
tzkoba
21
11k
Other Decks in Technology
See All in Technology
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
1
280
Adminaで実現するISMS/SOC2運用の効率化 〜 アカウント管理編 〜
shonansurvivors
2
160
綺麗なデータマートをつくろう_データ整備を前向きに考える会 / Let's create clean data mart
brainpadpr
2
230
o11yで育てる、強い内製開発組織
_awache
3
120
extension 現場で使えるXcodeショートカット一覧
ktombow
0
220
pprof vs runtime/trace (FlightRecorder)
task4233
0
170
許しとアジャイル
jnuank
1
130
生成AIとM5Stack / M5 Japan Tour 2025 Autumn 東京
you
PRO
0
220
Goにおける 生成AIによるコード生成の ベンチマーク評価入門
daisuketakeda
2
110
Escaping_the_Kraken_-_October_2025.pdf
mdalmijn
0
150
英語は話せません!それでも海外チームと信頼関係を作るため、対話を重ねた2ヶ月間のまなび
niioka_97
0
120
Function calling機能をPLaMo2に実装するには / PFN LLMセミナー
pfn
PRO
0
940
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
580
Raft: Consensus for Rubyists
vanstee
139
7.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Writing Fast Ruby
sferik
629
62k
Side Projects
sachag
455
43k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Visualization
eitanlees
148
16k
Transcript
@tzkb Rook v1.1を使おう! 新機能の紹介 CloudNative Days Kansai 2019 Meetup ,
2019/11/27
2 最近やっていること • Cloud Native Days Tokyo 2019 “Cloud Native
Storageが拓く Database on Kubernetesの未来” • PGConf.Asia 2019 “Building PostgreSQL as a Service with Kubernetes” + =∞
3 知ってますか?
4 (念のため)Rookとは • マルチなストレージ・プロバイダに対応した、データストア・ オーケストレータ。 Storage Provider 種別 ステータス 概要
Ceph ストレージ Stable 分散ストレージ (Block/File/Object) Cockroach DB DB Alpha OSS版Spannerを目指す分散DB Minio ストレージ Alpha 簡素なオブジェクトストレージ EdgeFS ストレージ Stable Gitに似たGeoスケールのFS Cassandra KVS Alpha NoSQLの代表格、分散KVS NFS FS Alpha 共有ファイルシステム Yugabyte DB DB Alpha PostgreSQL互換の分散DB
5 :Ceph(RBD)をdeployした際の構成例 • Rookは以下の3つのレイヤで構成される。 operator agent/discover agent/discover agent/discover osd osd
osd mon mon mon CSI csi-provisioner csi-rbdplugin csi-rbdplugin csi-rbdplugin Rook [Orchestration] • Storage Providerの管理 [Storage Provisioning] • CSIドライバが、Podとスト レージの接続を媒介 [Storage Provider] • Block/File/Objectストレージ やデータベースを構成
6 9/13、Rook v1.1がリリース! 以下の新機能が追加された。 • PVC-based OSDs/MONs • external Ceph
cluster • Dynamic Bucket Provisioning • EdgeFS to v1 stable • YugaByte DB 現在、最新版はv1.1.7
7 (新機能①)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も移動不可。
9 やってみた、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が作成される。
10 やってみた、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
11 (参考)Raw Block Volumeとは https://qiita.com/tzkoba/items/fb9ccab311b8d7956a6f
12 PVC-basedなRook/Cephのユースケース • KubernetesによるStorage as a Serviceの実現に近づく。 • Storageを抽象化、CSIで外部 へVolumeを提供。
• STaaS内ではNodeとVolumeが 分離され、復元力が高い。 << 課題 >> • Storageが機能過多(=高コスト) • コントローラはCephが担当、 データを冗長化&分散。 STaaS
13 (新機能②)Yugabyte DBとは? • ACIDなトランザクションをサポートし、Geoスケールに分散が 可能な、スケールアウト型のデータベース。 tablet3 tablet2 tablet1 tablet4
tablet2 tablet1 tablet4 tablet3 tablet1 tablet4 tablet3 tablet1 Distrbuted Txn Mgr Distrbuted Txn Mgr Distrbuted Txn Mgr Distrbuted Txn Mgr syscatalog syscatalog syscatalog [yb-tserver] • Spanner Serverと同義と 考えて良さそう。 • データはtablet単位で冗長 化され、Raftでリーダ選出。 [yb-master] • メタデータの管理。 • 3重に冗長化、Raftでリー ダ選出。
14 (さらに詳しく)YugaByte DBのアーキテクチャ • YugaByte DBは階層化された分散データストアとなっている。 クエリレイヤと分散ドキュメントストア に分かれている。 • クエリレイヤは2つのAPIを提供。
– PostgreSQL互換のSQLを介するAPI – Cassandra起源の独自API • DocDBにデータを格納。 – RocksDBを拡張したLSM(Log Structured Merged Tree)のストレージエンジン。 – ShardingやReplicationなどの機能を提供、 トランザクション機能を実装。
15 (告知) Japan Rook Meetup、やります!!