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

Rook v1.2の紹介 - できること、できないこと -

Cd891a89dfec6ca7bd278b5f5bd87c90?s=47 tzkoba
January 10, 2020

Rook v1.2の紹介 - できること、できないこと -

社内向け資料から一部削ったもの。

Cd891a89dfec6ca7bd278b5f5bd87c90?s=128

tzkoba

January 10, 2020
Tweet

Transcript

  1. @tzkb Rook v1.2の紹介 ~できること、できないこと~ 2020/1/10

  2. 2 最近やっていること • Cloud Native Days Tokyo 2019 “Cloud Native

    Storageが拓く Database on Kubernetesの未来” • Japan Rook Meetup #1 “Rook v1.1で新登場! YugaByteDBをさわってみる” + で色々と。
  3. 4 • そもそもRookって何? • で、Rookって何してくれるの? • なるほど、どんなときに使えるの? • 課題はないの? •

    今、Rookを試す意味
  4. 5 今日のゴール

  5. 6 そもそもRookって何?

  6. 7 読み方問題 • ルーク or ルック? • お好きなほうでどうぞ。今回は“ルーク“で行きます。

  7. 8 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
  8. 9 AWSと比べると良く分かるかも? Storage Provider AWSでは 説明 Ceph EBS/EFS/S3 • Unified

    SDS Cockroach DB DynamoDB? Aurora? • 分散KVS上のRDB(postgres) Minio S3 • オブジェクトストレージ EdgeFS EBS/EFS/S3 • こちらもUnifiedなSDS Cassandra MCS • re;Invent2019で発表 NFS EFS • ファイルストレージ Yugabyte DB DynamoDB? Aurora? • 分散KVS上のRDB(postgres) • こうして見ると、Rookの競合はクラウドベンダーにも見える。
  9. 10 それぞれ詳しく知りたい人は • 2019年末のアドベントカレンダーがあるよ。

  10. 11 つまり、Rookとは は、自分で作ると大変な データストア(分散ストレージ/データベース) を、Kubernetes上に簡単に構築・ 運用できるようにするオペレーター だよ。

  11. 12 Rookってオンプレに向いてる? • Outpostsに蹴散らされそうな未来も少し見えたり。 対象サービス EC2 EBS ECS EKS EMR

    RDS ※preview (postgres,MySQL) EFSやDynamoDB等も来たら、 オンプレで基盤構築する物好き は居る? Cloud at Customer(by Oracle) は流行らなかったけど、今回は どうかな。
  12. 13 で、Rookって何をしてくれるの?

  13. 14 Cephの例:こんなクラスタを3コマンドで作ってくれる operator agent/discover agent/discover agent/discover osd osd osd mon

    mon mon CSI csi-provisioner csi-rbdplugin csi-rbdplugin csi-rbdplugin Rook • monとかosdとか普通は面倒なんです。
  14. 15 RookなしでCephクラスタを作ろうとしたら、 1. パッケージをダウンロードして、 2. 各ノード(例えば3台)にCephをインストールして、 3. MONプロセスを起動して、 4. Managerを起動して、

    5. OSDプロセスを起動してクラスタに組み込んで、
  15. 16 Rookなら、Cephもらっく楽に構築! $ kubectl apply -f cluster/exsample/kubenetes/ceph/common.yaml $ kubectl apply

    -f cluster/exsample/kubenetes/ceph/operator.yaml $ kubectl apply -f cluster/exsample/kubenetes/ceph/cluster.yaml • たったの3コマンドを投入するだけ(当社調べ)。
  16. 17 分散SQLデータベース?Rookなら何とかしてくれる! yb-master yb-master yb-master rook yugabytedb operator yb-tserver yb-t-server

    yb-tserver • Spanner的なOSS、 も簡単に構築。
  17. 18 Rookなら、分散DBもらっく楽に構築! $ kubectl apply -f cluster/exsample/kubenetes/yugabytedb/operator.yaml $ kubectl apply

    -f cluster/exsample/kubenetes/yugabytedb/cluster.yaml • たった2コマンドを投入するだけ(2回目)。
  18. 19 つまり、Rookが何をしてくれるのかというと 【Cassandra】 【YugaByteDB】 【Ceph】 • K8sを分散データストアのプラットフォームにしてくれる。 osd mon osd

    mon osd mon osd osd mgr osd master master master t-server t-server t-server
  19. 20 なるほど、どんなときに使えるの?

  20. 21 今、Rookを使うならどういう用途か? 1. 何らかの理由で、Managedなサービスが使えないとき ① 開発環境、PoC ② オンプレミス/プライベートクラウド 2. パブリッククラウドの可用性に満足できないとき

    ① Multi-AZにEBSを使いたい 3. OpenShiftで ① OpenShift Container Storage 4
  21. 22 1.① 開発環境とかPoCで • コストがかかったり、クラウドの管理権限がなかったりで、 S3やEFSが使えない環境もある。 • EC2とEBSは使えるし、K8sクラスタ(EKSかも)はある。 nfs-operator nfs-provisoner

    minio-operator rook-nfs minio-store minio-store app-A app-A app-C S3互換IF GET/PUT NFS mount
  22. 23 1.② オンプレミス/プライベートクラウドで • ストレージがない(?)オンプレミス環境とか、オブジェクト・ ストレージが用意されてないプライベートクラウドとか。 • サーバ内蔵のDiskかき集めて、それっぽく使いたい。 osd osd

    osd mon mon mon osd mds csi-rbdplugin csi-rbdplugin csi-rbdplugin csi-rbdplugin csi-cephfsplugin csi-cephfsplugin csi-cephfsplugin csi-cephfsplugin CSI mds rgw rgw
  23. 25 • KubernetesとMulti-AZなノードでPodの可用性は確保できても、 EBSを使っているとデータが移動できない。 • Rookを使って、Multi-AZなブロックストレージを構築できる。 2.① クラウドの可用性に満足できない osd osd

    mon mon osd csi-rbdplugin csi-rbdplugin csi-rbdplugin CSI AZ-a AZ-b AZ-c
  24. 29 つまり、Rookの使いみちは Kubernetesクラスタはある、じゃあストレージはどうしよう? な場面で使ってみる。 1. 何らかの理由で、Managedなサービスが使えないとき 2. パブリッククラウドの可用性に満足できないとき 3. OpenShiftで

  25. 30 課題はないの?

  26. 31 課題1)Rookじゃなきゃ出来ないんだっけ? • オンプレミスもMulti-AZも他でも出来る。 • 例えば、NetApp Cloud Volume ONTAP+Trident。 app-A

    AZ-a AZ-b
  27. 32 課題2)今のKubernetes/Rookで大丈夫か? osd osd mon mon osd AZ-a AZ-b AZ-c

    • 正直、マルチIFは欲しい。Multusが拡まるか? • AZやNodeにポリシーに従って(良い感じに)配置して欲しい。 DB-1 DB-2 DB-3 サービスLAN ストレージLAN DB LAN