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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
CassandraCommunityJP
July 27, 2021
Technology
0
620
Cassandra on Kubernets- K8ssandra
Cassandra Meetup in Tokyo, Summer 2021
・K8ssandra
クラウドネイティブでスケーラブルなデータストア +管理ツールと簡単なデータアクセス
CassandraCommunityJP
July 27, 2021
Tweet
Share
More Decks by CassandraCommunityJP
See All by CassandraCommunityJP
Azure Managed Instance for Apache Cassandra
cassandracommunityjp
0
240
Transaction Management on Cassandra
cassandracommunityjp
0
360
運用中システムにおける6億レコードのデータ移行に関する課題と解決
cassandracommunityjp
0
370
Cassandraの活用とその事例
cassandracommunityjp
0
540
Microsoft Azureを基盤としたライフサイエンス業界事例でのCassandra / DataStax Enterpriseの活用
cassandracommunityjp
0
230
Microsoft Azure で実現する Cassandra とその活用事例
cassandracommunityjp
0
390
Troubleshooting Apache Cassandra
cassandracommunityjp
0
360
Cassandra Summit Tokyo 2017 Keynote
cassandracommunityjp
0
450
Aaron Morton
cassandracommunityjp
0
72
Other Decks in Technology
See All in Technology
Phase09_自動化_仕組み化
overflowinc
0
1.7k
新規事業×QAの挑戦:不確実性を乗りこなす!フェーズごとに求められるQAの役割変革
hacomono
PRO
0
180
大規模ECサイトのあるバッチのパフォーマンスを改善するために僕たちのチームがしてきたこと
panda_program
1
390
欠陥分析(ODC分析)における生成AIの活用プロセスと実践事例 / 20260320 Suguru Ishii & Naoki Yamakoshi & Mayu Yoshizawa
shift_evolve
PRO
0
390
Copilot 宇宙へ 〜生成AIで「専門データの壁」を壊す方法〜
nakasho
0
190
事例から紐解くSHIFT流QA支援 ~大規模プロジェクトの品質管理支援、QA組織立ち上げ~ / 20260320 Nozomu Koketsu
shift_evolve
PRO
0
140
データマネジメント戦略Night - 4社のリアルを語る会
ktatsuya
1
230
「AIエージェントで変わる開発プロセス―レビューボトルネックからの脱却」
lycorptech_jp
PRO
0
120
20年以上続く PHP 大規模プロダクトを Kubernetes へ ── クラウド基盤刷新プロジェクトの4年間
oogfranz
PRO
0
210
SaaSに宿る21g
kanyamaguc
2
160
JEDAI認定プログラム JEDAI Order 2026 受賞者一覧 / JEDAI Order 2026 Winners
databricksjapan
0
330
やさしいとこから始めるGitHubリポジトリのセキュリティ
tsubakimoto_s
0
360
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
40k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
490
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Curious Case for Waylosing
cassininazir
0
280
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
180
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
490
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
240
Exploring anti-patterns in Rails
aemeredith
2
290
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
220
Leo the Paperboy
mayatellez
4
1.6k
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によるサーバーレスメッセージストリーミングもベータテスト中