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 Kubernets- K8ssandra
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
CassandraCommunityJP
July 27, 2021
Technology
640
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cassandra on Kubernets- K8ssandra
Cassandra Meetup in Tokyo, Summer 2021
・K8ssandra
クラウドネイティブでスケーラブルなデータストア +管理ツールと簡単なデータアクセス
CassandraCommunityJP
July 27, 2021
More Decks by CassandraCommunityJP
See All by CassandraCommunityJP
Azure Managed Instance for Apache Cassandra
cassandracommunityjp
0
250
Transaction Management on Cassandra
cassandracommunityjp
0
370
運用中システムにおける6億レコードのデータ移行に関する課題と解決
cassandracommunityjp
0
390
Cassandraの活用とその事例
cassandracommunityjp
0
550
Microsoft Azureを基盤としたライフサイエンス業界事例でのCassandra / DataStax Enterpriseの活用
cassandracommunityjp
0
240
Microsoft Azure で実現する Cassandra とその活用事例
cassandracommunityjp
0
410
Troubleshooting Apache Cassandra
cassandracommunityjp
0
370
Cassandra Summit Tokyo 2017 Keynote
cassandracommunityjp
0
460
Aaron Morton
cassandracommunityjp
0
77
Other Decks in Technology
See All in Technology
生成AIの活用/high_school2026
okana2ki
0
110
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
840
貴方はどのエンジニアリングを磨くのか
hatyibei
0
100
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
4.2k
AI時代における最適なQA組織の作り方
ymty
3
490
NDIAS CTF 2026 問題解説会資料
bata_24
0
180
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
3.5k
20260702_生成AIはどこまで成長するのか_チャットだけじゃない世界
doradora09
PRO
0
110
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
230
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
3.1k
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
3
3k
地域 SRE コミュニティ最前線 / SRE NEXT 2026 Discussion Night Track C
muziyoshiz
0
180
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Paper Plane (Part 1)
katiecoart
PRO
0
9.5k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
800
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Building Adaptive Systems
keathley
44
3.1k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
190
New Earth Scene 8
popppiees
3
2.4k
Amusing Abliteration
ianozsvald
1
220
Transcript
Cassandra on Kubernetes k8ssandraの紹介
森下 雄貴 ソリューションアーキテクト / DataStax • Apache Cassandra™ コミッター •
Google Cloud Professional Cloud Architect 2 @yukim https://zenn.dev/yukim
3 クラウドネイティブでスケーラブルなデータストア + 管理ツールと簡単なデータアクセス
+ =
k8ssandra.io
K8ssandraでセットアップされるコンポーネント 6 Helmでのパッケージング cass-operatorで管理されるクラウドネイティブDB Reaper Medusa メトリクス収集と可視化 外部からのアクセスを提供するKubernetes Ingress (必
要に応じて) REST, GraphQL, ドキュメントAPIでのデータアクセス データ同期とバックアップ/復元を担う管理ツール
K8ssandraコンポーネントの役割 7 Kubernetesクラスター データゲートウェイ NoSQL DB Web / モバイル アプリ
ユーザー Ingress マイクロサービス オペレーター Reaper Medusa オブジェクトストア データ同期 バックアップと復元 デプロイ メトリクスUI メトリクスDB
k8ssandraの(基本的な)インストール 8 helm repo add k8ssandra https://helm.k8ssandra.io/stable helm repo update
helm install demo k8ssandra/k8ssandra
ローカル環境 (開発用) クラウド環境 (本番) 9 ローカル環境およびクラウドへのインストール https://github.com/k8ssandra/k8ssandra-terraform
インストールガイド - docs.k8ssandra.io/install
Kubernetes上でのスケーラブルなデータ層 アプリケーション データ インフラ マイクロサービス データゲートウェイ NoSQLデータベース コンテナオーケストレーション クラウド Web
/ モバイル アプリ 11
Apache Cassandra™ - NoSQL分散データベース • 2010年からApacheトップレベルプ ロジェクト • 最新バージョン: 4.0
• 分散データベース • 柔軟なスケーラビリティ • ハイパフォーマンス • 高可用性/耐障害性 • パーティション単位でレコードを保持
https://github.com/k8ssandra/cass-operator cass-operatorの機能: • CassandraDatacenter カスタムリソース定義(CRD)の提供 ◦ クラスタートポロジーの設定(DC/ラック) ◦ cassandra.yamlやjvm-server.optionsの設定 ◦
ローリングリスタート • ノードのブートストラップ管理 • シードノードの自動選定 • クラスターのスケールアウト • ノードの自動置き換え • 初期スーパーユーザーの自動作成 • ノードのヘルスチェック cass-operator: Cassandraクラスターのデプロイを簡単に! 13
AZをラックに割り当て
Cassandra Management API 15 Cassandra Management API Service CASSANDRA mgmt-api
https://github.com/k8ssandra/management-api-for-apache-cassandra
モニタリング 16 https://github.com/datastax/metric-collector-for-apache-cassandra
K8ssandraとkube-prometheus-stack
デモ: K8ssandraセットアップ 1. GKEの3ノードのリージョンクラスターをus-west1に作成(事前に準備済み) > gcloud container clusters create k8ssandra-demo
--region us-west1 --machine-type "e2-standard-8" --num-nodes 1 > gcloud container clusters get-credentials k8ssandra-demo --region us-west1 2. Traefikのインストール > helm repo add traefik https://helm.traefik.io/traefik > helm repo update > helm install traefik traefik/traefik
デモ: K8ssandraセットアップ 3. k8ssandraの設定ファイルを作成し、デプロイ 1. yamlファイルをダウンロード https://gist.github.com/yukim/85849e261048deea9335d3a427fcd99a#file-k8ssandra-setup-yaml 2. TraefikのExternal IPを取得
kubectl get svc/traefik --template "{{(index .status.loadBalancer.ingress 0).ip}}" 3. yamlファイルを編集し、<<external_ip_address>>を取得したIPアドレスで置き換え 4. k8ssandraのデプロイ > helm repo add k8ssandra https://helm.k8ssandra.io/stable > helm repo update > helm install demo k8ssandra/k8ssandra -f k8ssandra-setup.yaml
デモ: K8ssandraセットアップ 4. GrafanaダッシュボードとReaperをブラウザで確認 (ReaperはCassandraクラスターがデプロイされた後に起動します。) • Grafana: http://grafana.<<external_ip_address>>.nip.io • Reaper:
http://reaper.<<external_ip_address>>.nip.io/webui/
デモ: K8ssandraセットアップ 5. CQLSHとnodetoolの利用 1. CQLスーパーユーザーとJMXユーザーの認証情報を取得 $username = $(kubectl get
secret demo-superuser --template "{{.data.username}}" | base64 -d) $password = $(kubectl get secret demo-superuser --template "{{.data.password}}" | base64 -d) $jmxuser = $(kubectl get secret demo-reaper-jmx --template "{{.data.username}}" | base64 -d) $jmxpass = $(kubectl get secret demo-reaper-jmx --template "{{.data.password}}" | base64 -d) 2. CQLSH実行 kubectl exec -it demo-dc1-us-west1-a-sts-0 -c cassandra -- cqlsh -u $username -p $password 3. nodetool実行 kubectl exec -it demo-dc1-us-west1-a-sts-0 -c cassandra -- nodetool -u $jmxuser -pw $jmxpass status
Apache Cassandra™ リニアスケーラビリティ― 22
デモ: クラスターの拡張 1. k8ssandraの設定ファイルを編集し、既存のデプロイをアップグレード 1. yamlファイルをダウンロード https://gist.github.com/yukim/85849e261048deea9335d3a427fcd99a#file-k8ssandra-expand-yaml 2. yamlファイルを編集し、<<external_ip_address>>を取得したIPアドレスで置き換え 3.
k8ssandraの更新 > helm update demo k8ssandra/k8ssandra -f k8ssandra-expand.yaml 2. Grafanaダッシュボードとnodetoolでの確認
https://stargate.io
なぜStargateなのか カジュアルな開発者 • 新しいクエリ言語を習得する必要が ある • データがどのように保存されている か気にしない • 開発のためにローカルにデータベー
スをインストールする必要がある 25 SRE、オペレーター、DBAs • DBに直接アクセスさせたくない • アプリのためにポート0-65536を開 けなくてはならない... CIO、アーキテクト • APIを作成するためにさらに開発者 を雇うべきか...
Stargate REST API • 既存のCQLスキーマへRESTful にアクセス。スキーマの作成も 可能。 • APIに慣れている開発者向け •
Swaggerを統合 クイックスタート: https://stargate.io/docs/stargate/1.0/quickstart/quick_start-rest.html
Stargate GraphQL API • 既存のCQLスキーマをGraphQL で公開 • どの項目を取得したいかを細か く制御可能 •
複数のデータをジョインする機 能(フェデレーション)も開発中 • GraphQL playgroundの提供 クイックスタート: https://stargate.io/docs/stargate/1.0/quickstart/quick_start-graphql.html
Stargate Document API • スキーマレス! • JSONドキュメントを直接書 き込み • Cassandraのテーブルに
フィールドごとに細かく格納 クイックスタート: https://stargate.io/docs/stargate/1.0/quickstart/quick_start-document.html
Stargate APIs APIの拡張 ストレージの 拡張 Cassandra 3.11 Cassandra 4.0 DataStax
Enterprise 6.8 REST GraphQL Document API Cassandra Query Language (CQL) GRPC (incubating) 外部認証との 連携
デモ: Stargate Document API 1. Swagger UIの確認 kubectl port-forward svc/demo-dc1-stargate-service
8082:8082 ブラウザでアクセス: http://localhost:8082/swager-ui 2. 認証APIを利用して認証トークンを取得 https://stargate.io/docs/stargate/1.0/quickstart/quick_start-document.html#_generate_an_auth_token 3. JSONドキュメントを格納する名前空間を作成 https://stargate.io/docs/stargate/1.0/quickstart/quick_start-document.html#_creating_a_namespace 4. JSONドキュメントの格納と取得 https://stargate.io/docs/stargate/1.0/quickstart/quick_start-document.html#_writing_documents
まとめ • CassandraはスケーラブルなNoSQLデータベース ◦ Kubernetesと組み合わせて、データベースもクラウドネイティブ • K8ssandraはCassandra運用に必要な機能をパッケージ ◦ クラスターのセットアップから自動化 •
開発者がすぐに使えるデータアクセスAPI、Stargateも提供
宣伝 https://astra.datastax.com • DataStaxが提供するサーバーレスのCassandraデータベース ◦ 自前でCassandra運用したくない ◦ 今あるCassandraを移行してTCOを下げたい ◦ Stargate
APIを利用して、サーバーレスで素早くアプリを開発したい • メールアドレス、GitHubアカウント、Googleアカウントで無料サインアップ • クレジットカード登録なしで毎月$25分(ストレージ40GB、3000万Readリクエスト、450万Writeリクエ スト相当) 使えます • Apache Pulsarによるサーバーレスメッセージストリーミングもベータテスト中