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、全員Cursor、ドキュメント駆動開発 〜DevinやGeminiも添えて〜
rinchsan
6
3.4k
「Chatwork」のEKS環境を支えるhelmfileを使用したマニフェスト管理術
hanayo04
1
280
データ基盤からデータベースまで?広がるユースケースのDatabricksについて教えるよ!
akuwano
3
170
事例で学ぶ!B2B SaaSにおけるSREの実践例/SRE for B2B SaaS: A Real-World Case Study
bitkey
1
370
united airlines ™®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedhelp
1
470
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
810
Amplify Gen2から知るAWS CDK Toolkit Libraryの使い方/How to use the AWS CDK Toolkit Library as known from Amplify Gen2
fossamagna
1
310
伴走から自律へ: 形式知へと導くSREイネーブリングによる プロダクトチームの信頼性オーナーシップ向上 / SRE NEXT 2025
visional_engineering_and_design
3
260
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
13k
QuickSight SPICE の効果的な運用戦略~S3 + Athena 構成での実践ノウハウ~/quicksight-spice-s3-athena-best-practices
emiki
0
270
推し書籍📚 / Books and a QA Engineer
ak1210
0
120
オフィスビルを監視しよう:フィジカル×デジタルにまたがるSLI/SLO設計と運用の難しさ / Monitoring Office Buildings: The Challenge of Physical-Digital SLI/SLO Design & Operation
bitkey
1
370
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Producing Creativity
orderedlist
PRO
346
40k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Site-Speed That Sticks
csswizardry
10
700
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
4 Signs Your Business is Dying
shpigford
184
22k
Practical Orchestrator
shlominoach
189
11k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
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!