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
Cassandra on Kubernetes
Search
Yuki Morishita
January 14, 2022
Technology
2
160
Cassandra on Kubernetes
Cloud Native Database Meetup #3 での発表資料です。
https://cndata.connpass.com/event/231621/
#cloudnativedb
Yuki Morishita
January 14, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
170
Rustから学ぶ 非同期処理の仕組み
skanehira
1
150
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
210
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
130
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
1.1k
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
170
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
250
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
2
530
2つのフロントエンドと状態管理
mixi_engineers
PRO
3
110
テストを軸にした生き残り術
kworkdev
PRO
0
210
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
470
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
How STYLIGHT went responsive
nonsquared
100
5.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Transcript
Cassandra on Kubernetes k8ssandraを用いた運用のベストプラクティス Cloud Native Database Meetup #3
森下 雄貴 ソリューションアーキテクト / DataStax • Apache Cassandraコミッター @yukim https://zenn.dev/yukim
DataStax 製品・サービス コミュニティー 技術サポート パッケージ製品 クラウドサービス エンタープライズ オープンソース Better Time
to market/value
• Apacheトップレベルプロジェクト(2010年~) • 最新バージョン: 4.0.1 • スケーラビリティ、ハイパフォーマンス、高可用性/耐障害性 Apache Cassandra -
NoSQL分散データベース https://cassandra.apache.org/
Kubernetes - コンテナ管理基盤 https://kubernetes.io/ja/
+ =
Cassandra on Kubernetes - StatefulSet • StatefulSetの利用 ◦ 公式ウェブサイトにチュートリアルがある ◦
https://kubernetes.io/docs/tutorials/state ful-application/cassandra/ • スケールアウトもできる ◦ replicas: 3 -> 4 apiVersion: apps/v1 kind: StatefulSet metadata: name: cassandra labels: app: cassandra spec: serviceName: cassandra replicas: 3 selector: matchLabels: app: cassandra template: metadata: labels: app: cassandra spec: …
Cassandra on Kubernetes • Cassandraの運用はスケールアウトだけではない ◦ 可用性を高めるために複数のアベイラビリティゾーン、データセンターに拡張したい ◦ 障害からの復帰 ◦
定常的な運用コマンドの実行 ◦ データ同期 ◦ バックアップ …
クラウドネイティブでスケーラブルなデータストア + 管理ツールと簡単なデータアクセス
https://k8ssandra.io/
K8ssandraでセットアップされるコンポーネント Helmでのパッケージング cass-operatorで管理されるクラウドネイティブDB Reaper Medusa メトリクス収集と可視化 外部からのアクセスを提供するKubernetes Ingress (必 要に応じて)
gRPC/REST/GraphQL/ドキュメントAPIでのデータアクセス データ同期とバックアップ/復元を担う管理ツール
K8ssandraコンポーネントの役割 Kubernetesクラスター データゲートウェイ NoSQL DB Web / モバイル アプリ ユーザー
Ingress マイクロサービス オペレーター Reaper Medusa オブジェクトストア データ同期 バックアップと復元 デプロイ メトリクスUI メトリクスDB
k8ssandraの(基本的な)インストール helm repo add k8ssandra https://helm.k8ssandra.io/stable helm repo update helm
install demo k8ssandra/k8ssandra
❯ kubectl get pods NAME READY STATUS RESTARTS AGE demo-cass-operator-5697bd5ff9-92x42
1/1 Running 0 91s demo-crd-upgrader-job-k8ssandra-jkvlq 0/1 Completed 0 60m demo-dc1-default-sts-0 2/2 Running 0 79s demo-dc1-stargate-864475cbfd-kb9rv 1/1 Running 3 91s demo-grafana-6d58c8578-wmcns 2/2 Running 0 91s demo-kube-prometheus-stack-operator-8574b9dbc4-79sjd 1/1 Running 0 91s demo-reaper-operator-85bbdd8974-8bcfm 1/1 Running 0 91s prometheus-demo-kube-prometheus-stack-prometheus-0 2/2 Running 1 84s
❯ kubectl get pods NAME READY STATUS RESTARTS AGE demo-cass-operator-5697bd5ff9-92x42
1/1 Running 0 91s demo-crd-upgrader-job-k8ssandra-jkvlq 0/1 Completed 0 60m demo-dc1-default-sts-0 2/2 Running 0 79s demo-dc1-stargate-864475cbfd-kb9rv 1/1 Running 3 91s demo-grafana-6d58c8578-wmcns 2/2 Running 0 91s demo-kube-prometheus-stack-operator-8574b9dbc4-79sjd 1/1 Running 0 91s demo-reaper-operator-85bbdd8974-8bcfm 1/1 Running 0 91s prometheus-demo-kube-prometheus-stack-prometheus-0 2/2 Running 1 84s
❯ helm upgrade demo k8ssandra/k8ssandra --reuse-values --set \ cassandra.datacenters\[0\].size=3,cassandra.datacenters\[0\].name=dc1 ...
❯ kubectl get pods NAME READY STATUS RESTARTS AGE demo-cass-operator-5697bd5ff9-92x42 1/1 Running 0 12h demo-crd-upgrader-job-k8ssandra-hbxph 0/1 Completed 0 4h demo-dc1-default-sts-0 2/2 Running 0 12h demo-dc1-default-sts-1 2/2 Running 0 4h demo-dc1-default-sts-2 2/2 Running 0 4h demo-dc1-stargate-864475cbfd-kb9rv 1/1 Running 3 12h demo-grafana-6d58c8578-wmcns 2/2 Running 0 12h demo-kube-prometheus-stack-operator-8574b9dbc4-79sjd 1/1 Running 0 12h demo-reaper-operator-85bbdd8974-8bcfm 1/1 Running 0 12h prometheus-demo-kube-prometheus-stack-prometheus-0 2/2 Running 1 12h
ローカル環境 (開発用) クラウド環境 (本番) ローカル環境およびクラウドへのインストール https://github.com/k8ssandra/k8ssandra-terraform
インストールガイド - docs.k8ssandra.io/install
Kubernetes上でのスケーラブルなデータ層 アプリケーション データ インフラ マイクロサービス データゲートウェイ NoSQLデータベース コンテナオーケストレーション クラウド Web
/ モバイル アプリ
K8ssandraでセットアップされるコンポーネント Helmでのパッケージング cass-operatorで管理されるクラウドネイティブDB Reaper Medusa メトリクス収集と可視化 外部からのアクセスを提供するKubernetes Ingress (必 要に応じて)
gRPC/REST/GraphQL/ドキュメントAPIでのデータアクセス データ同期とバックアップ/復元を担う管理ツール
https://github.com/k8ssandra/cass-operator cass-operatorの機能: • CassandraDatacenter カスタムリソース定義(CRD)の提供 ◦ クラスタートポロジーの設定(DC/ラック) ◦ cassandra.yamlやjvm-server.optionsの設定 ◦
ローリングリスタート • ノードのブートストラップ管理 • シードノードの自動選定 • クラスターのスケールアウト • ノードの自動置き換え • 初期スーパーユーザーの自動作成 • ノードのヘルスチェック cass-operator: Cassandraクラスターのデプロイを簡単に!
Cassandra Management API Cassandra Management API Service CASSANDRA mgmt-api https://github.com/k8ssandra/management-api-for-apache-cassandra
AZをラックに割り当て
Prometheus/Grafanaによるモニタリング https://github.com/datastax/metric-collector-for-apache-cassandra MCAC (java agent) collectd OS 起動
Stargate - https://stargate.io https://stargate.io/docs/stargate/1.0/concepts/concepts.html
Stargate APIs APIの拡張 ストレージの 拡張 Cassandra 3.11 Cassandra 4.0 DataStax
Enterprise 6.8 REST GraphQL Document API Cassandra Query Language (CQL) GRPC 外部認証との 連携
Try Stargate on DataStax Astra! https://astra.datastax.com サーバーレスのApache Cassandraデータベース • Stargate経由でのアクセスなので、CQLのほ
か、各種APIを利用可能 • 無料サインアップで毎月$25までのクレジット分 を利用可能
データ同期とバックアップ/復元 データの同期 • cassandra-reaper • nodetool repair の スケジューリング
データ同期とバックアップ/復元 バックアップと復元 • Medusa for Apache Cassandra • Google Cloud
Storage や Amazon S3、S3互換のストレージへCassandraのデータファイルを バックアップ • k8ssandraからは、medusa-operatorが提供するバックアップおよび復元用のカスタムリソースを利 用してバックアップ、復元を行う。 • helm install my-backup k8ssandra/backup … • helm install my-restore k8ssandra/restore --set backup.name=backup1 ...
k8ssandraの次期バージョン - k8ssandra-operator • Helmだけでは機能追加が複雑化 ◦ 複雑な構成(マルチデータセンター対応な ど)をもっと簡単に実現したい • k8ssandra-operatorの開発
https://github.com/k8ssandra/k8ssandra-o perator ◦ 複雑な機能をプログラミング言語を用いて 実現できる ◦ 複数オペレーターの統合 ▪ Stargate、Reaper、Medusaなどの CRDを提供
まとめ • CassandraはスケーラブルなNoSQLデータベース ◦ Kubernetes上でデータベース層もスケーラブルに • K8ssandraはCassandra運用に必要な機能をパッケージ ◦ クラスターのセットアップから運用までをカバーするコンポーネントのセットアップ ◦
クラスターの拡張、データ同期、バックアップなど運用を自動化 • 開発者がすぐに使えるデータアクセスAPI、Stargateも提供 • 次期バージョンはより複雑な構成を簡単にできるよう開発がすすめられている
Thank you!