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

Thinking of Rook Cassandra Operator

Thinking of Rook Cassandra Operator

Debf5c5633f5a9713351dfff1d501031?s=128

Nobuhiro Sue

April 02, 2021
Tweet

Transcript

  1. 2021年 4月 2日 レッドハット株式会社 須江 信洋 (@nobusue) 今だからこそ考える Cassandra on

    Rook 1 Japan Rook Meetup #5
  2. 自己紹介 2 須江 信洋(すえ のぶひろ) • Twitter: @nobusue 約14年JavaEE関連に携わる(1999〜2013) IoTサービス関連Startupで開発から運用まで

    (2014〜2017) • ストリーミングデータ処理、マイクロサービス化、 コンテナプラットフォーム構築/運用 Red HatでOpenShift担当Solution Architect(2017〜2019) Red HatでMW SAチームのマネージャ(2019/4〜now)
  3. Rook Project Status ......... 3 https://github.com/rook/rook#project-status

  4. 4ヶ月くらい放置されてる気配・・・(2021/4/2早朝時点) 4 https://github.com/rook/rook/tree/master/pkg/operator/cassandra

  5. Apache Cassandraってどんなもの? 5 • https://cassandra.apache.org/doc/latest/architecture/overview.html ◦ "Apache Cassandraは、オープンソースの分散型NoSQLデータベースです。Cassandraは、Eventually Consistent(結果整合性)セマンティクスを持つ、パーティション化されたワイドカラムストレージモデルを提 供します。"

    ◦ "Apache Cassandraは当初、Facebook社でSEDA(Staged Event Driven Architecture)を用いて設計 され、Amazon社のDynamo分散ストレージおよびレプリケーション技術と、Google社のBigtableデータ およびストレージエンジンモデルを組み合わせて実装されました。DynamoとBigtableは、スケーラブルで 信頼性が高く、可用性の高いストレージシステムという新たな要求を満たすために開発されましたが、そ れぞれに改善すべき点がありました。" • 手っ取り早く理解したい方はこちらをどうぞ ◦ 「NoSQLデータベースCassandraの紹介 〜 ヤフーのデータ基盤を支える技術」 ▪ https://techblog.yahoo.co.jp/entry/20200129803067/ • 要点 ◦ マスターレス(Peer to Peer)な分散型 =>運用メンドイ ◦ ワイドカラムKVS ◦ Eventually Consistent ◦ Javaで実装
  6. Cassandra Operator(s) 6 • Cass Operator by DataStax ◦ https://github.com/datastax/cass-operator

    ◦ https://docs.datastax.com/en/cass-operator/doc/cass-operator/cassOperatorGettingStarted.html ◦ 機能的にはまだ弱いがデファクト狙い? ◦ OpenShiftでもcertify済み ▪ https://catalog.redhat.com/software/operators/datastax/cass-operator/5ec5a88329373868203 3f770 • CassKop by Orange-OpenSource ◦ https://github.com/Orange-OpenSource/casskop ◦ 機能的にはかなり充実している様子 • Instaclustr ◦ https://operatorhub.io/operator/cassandra-operator ◦ https://github.com/instaclustr/cassandra-operator ◦ sunset、今後はcass-opかcasskopを使えとのこと • Scylla Operator ◦ https://github.com/scylladb/scylla-operator ◦ Scylla(C実装のCassandra互換DB)専用Operatorを作ってる
  7. 気を取り直して、、、アーキテクチャを拝見 7 https://github.com/rook/rook/blob/master/design/cassandra/design.md

  8. Rook Cassandra Operator 8 • Quickstart ◦ https://rook.io/docs/rook/v1.5/cassandra.html ▪ Operatorの導入方法はシンプル

    • Rook Cassandra Operatorを動かす前提条件 ◦ https://rook.io/docs/rook/v1.5/k8s-pre-reqs.html ▪ Cassandraを動かす用途ならflexvolume pluginは必須ではない • Rook Cassandra Operatorのいいところ ◦ クラスタの構築が容易(CRをapplyするだけ) ◦ スケールアップ/ダウンが容易(CRをeditするだけ) ◦ モニタリングの設定が容易(ConfigMapを作るだけ) ◦ CassandraとScyllaを同じ方法で扱える • 注意点 ◦ Dynamic Provisioning可能なストレージが必要 ◦ StorageClassはCassandraクラスタ毎に1つしか設定できない ◦ (Rookで生き残れるか不透明・・・・)
  9. そもそもCassandra OperatorがRookに入ってる理由は? 9 • (たぶん)Dynamic Provisioning可能で、高速かつ信頼性の高いストレージが必須だから ◦ on k8sではなく普通にクラスタ組むときは、インスタンスストアなどの高速なローカルストレージ を使うことが多い

    ◦ on k8sの場合はPod配置の自由度を高めるためにストレージを抽象化したいので、必然的に CephのようなSDSと組み合わせて考える必要が出てくる ◦ おそらく、バックアップ/リストアやスナップショット取得など、ストレージ層と連携するOperatorを 作ることを想定していたのではなかろうか? ▪ 未実装だがRook Cassandra OperatorのDesign Docにその片鱗が・・・・ • しかし現実には、、、 ◦ Rook Ceph OperatorとRook Cassandra Operatorの間で共有されているコードは皆無で、 まったくの別物と言ってよい ◦ Cassandra/Scyllaいずれも独自にOperatorの開発が進められており、そちらがデファクトにな りそうな勢い
  10. 最後に) Cassandraのベンチマークツール 10 • 今回はベンチーマーク実行してませんがCassandraとScyllaで比較してみるとたぶん面白いと思い ます(時間取れたら後日やってみようと思います・・) • YCSB: 汎用NoSQLベンチマークツール ◦

    https://github.com/brianfrankcooper/YCSB/wiki/Getting-Started • tlp-stress: Cassandra専用ストレステストツール ◦ https://github.com/thelastpickle/tlp-stress
  11. linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Red Hat is the world’s leading

    provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you Red Hat Tech Night 2019.05