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
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
6.9k
ロールが細分化された組織でSREは何をするか?
tgidgd
1
420
AI Ready API ─ AI時代に求められるAPI設計とは?/ AI-Ready API - Designing MCP and APIs in the AI Era
yokawasa
6
1.7k
安定した基盤システムのためのライブラリ選定
kakehashi
PRO
3
130
How to Quickly Call American Airlines®️ U.S. Customer Care : Full Guide
flyaahelpguide
0
240
Microsoft Defender XDRで疲弊しないためのインシデント対応
sophiakunii
1
310
[SRE NEXT 2025] すみずみまで暖かく照らすあなたの太陽でありたい
carnappopper
2
470
全部AI、全員Cursor、ドキュメント駆動開発 〜DevinやGeminiも添えて〜
rinchsan
10
5.1k
AI時代にも変わらぬ価値を発揮したい: インフラ・クラウドを切り口にユーザー価値と非機能要件に向き合ってエンジニアとしての地力を培う
netmarkjp
0
130
CDK Toolkit Libraryにおけるテストの考え方
smt7174
1
550
[SRE NEXT] ARR150億円_エンジニア140名_27チーム_17プロダクトから始めるSLO.pdf
satos
5
3k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
18k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
95
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Designing Experiences People Love
moore
142
24k
Git: the NoSQL Database
bkeepers
PRO
430
65k
For a Future-Friendly Web
brad_frost
179
9.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Bash Introduction
62gerente
613
210k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
GitHub's CSS Performance
jonrohan
1031
460k
Speed Design
sergeychernyshev
32
1k
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!