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
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
250
Digitization部 紹介資料
sansan33
PRO
1
6.8k
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
170
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
570
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.3k
Cosmos World Foundation Model Platform for Physical AI
takmin
0
930
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
120
Red Hat OpenStack Services on OpenShift
tamemiya
0
110
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.4k
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
200
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
40k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
200
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
The SEO Collaboration Effect
kristinabergwall1
0
350
How to Ace a Technical Interview
jacobian
281
24k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
140
Raft: Consensus for Rubyists
vanstee
141
7.3k
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!