SlideShare a Scribd company logo
Database on Kubernetesの現在地点
- HA,Replication and more -
2019/7/1
@tzkb
@tzkoba
ちょっと質問①
• あなたは(どちらかといえば)○○勢?
1. Kubernetes 勢
2. データベース勢
3. その他
ちょっと質問②
• 普段お使いのデータベースは?
1. Oracle Database
2. MySQL
3. PostgreSQL
4. その他
自己紹介
• 名 前 :Takahiro Kobayashi
• 勤務先 :SIer
• 出没場所 :Oracle、PostgreSQL、k8s関連に色々と
• キャリア :DB、ストレージを中心にインフラ
• 好きなもの:速いDB 、太い帯域、小さいレイテンシ
DB on Kubernetes、色々やってます。
•CloudNativeDays Tokyo 2019で、
Cloud Native Storageが開く
Database on Kubernetesの未来
というタイトルで登壇予定。
• と を近付けたい!
今日話すこと
• Cloud Nativeなデータベース??
• Database on Kubernetesのモチベーション
• DBクラスタを扱う際の基礎知識
• DB on K8sのリファレンス・アーキテクチャ
• 今後のDatabase on Kubernetes
Cloud Nativeなデータベース?
Compute
Storage
Managed
Amazon Aurora
Amazon Redshift
Amazon RDS
on Cloud on Kubernetes
本日のTOPIC
Kubernetes is 何?
Node
Pod
Node
Pod
Node
Pod
Pod Pod
• コンテナ・オーケストレーションのプラットフォーム。
yaml 特徴として、
• 宣言的設定
• 自己修復
• Immutable
あれ?
DB向きじゃない?
Database on Kubernetesのモチベーション
• Auroraはすごい!
– 3つのAZ、6本のディスクに冗長化
– 再起動でもキャッシュ消えない!
– No checkpoint (!?)
– Vacuumも賢くなってる
– 詳しくはDeep Diveを参照
• でも、設計思想はこんな感じ。
• あれ?k8sで出来そうじゃない?
DBの高可用性/スケーラブルな構成とは
HA
(master/cold-standby)
1
Sharding
(multi-master)
Replication
(master/hot-standby)
2以上
インスタンス数 データ冗長化
2以上
Shared
Disk
Log
Shipping
(基本的に)
なし
×
スケールアウト
Read
Read/
Write
Failover
(Fencing)
障害時切替
Promotion
(Election)
---
DBクラスタの基礎知識① HA
<< 特徴 >>
• 障害検知/切替はLinux-HA
• 生死監視の専用NW(二重化)
• データは共有ストレージで冗長化
<<避けるべき最悪ケース>>
• 複数インスタンスでストレージに
書き込みをしてしまうこと
<<対策>>
• Fencing:強制的なリソース解放
VIP
Linux-HA
Controller Controller
【PostgreSQL on Linux-HA】
Fencingとは
• リソースをフェンスで囲うこと
=Fencing
<< 状態不明なマスターが発生したら>>
① 強制的にノードの電源落とす
i. プロセスを確実に停止
ii. ストレージのマウントを外す
iii. VIPを外す
② その上で別ノードでリソースを
獲得して、Masterを起動
VIP
Linux-HA
Controller Controller
【PostgreSQL on Linux-HA】
DBクラスタの基礎知識② Replication
<< 特徴 >>
• マスターはRead/Write、
スレーブはReadのみを処理
• 障害検知/切替は別ツールが必要
• データはWAL転送で冗長化
<<避けるべき最悪ケース>>
• 複数マスタが選出されること
<<対策>>
• リーダー選出:常に1台のみ
WAL
【PostgreSQL Streaming Replication】
リーダー選出とは
• 複数候補から常に1台のマスター
を選出
• 元マスターが復帰後もスレーブに
なっていることを通知する
<<状態不明なマスターが発生したら>>
① 残ったスレーブから1台の
リーダーを選出
② 選出されたらマスターへ昇格
③ 復帰ノードはスレーブに
【PostgreSQL Streaming Replication】
WAL
データは最新。
リーダーに!
他はスレーブ。
Database is Hard!!
DB on K8s構成のサマリ
(1)HA構成 Rookパターン
– 共有ディスク:Rook/Ceph【分散ストレージ】
(2)HA構成
– 共有ディスク:LINSTOR/DRBD【ディスク冗長化】
(3)Replication構成:
– リーダー選出:Kubernetes(etcd)を利用
DB on K8sの構成(1) HA - Rook -
<< 特徴 >>
• DBもストレージも全て
K8sで管理するHA
• 共有ディスクはCeph
• kube-fencingでNode
障害時のFencing
<< 課題 >>
• 複雑すぎるCeph
• ネットワーク越しのIO
Replicas:1
kube-fencing
(参考)Fencingがないと
Replicas:1
• ノード障害時に
StatefulSetのポッドが
フェイルオーバしない。
<< 原因 >>
• 仕様です。
• 以下設定でFOするが、
shutdown abortとなる
ので非推奨。
TerminationGracePeriodSeconds=0
DB on K8sの構成(2) HA - DRBD -
<< 特徴 >>
• DBもストレージも全て
K8sで管理するHA
• 共有ディスクはDRBD
• シンプルな構成
• ReadはローカルIO、
Writeは他ノードに伝播
<< 課題 >>
• やや煩雑なデプロイ
Replicas:1
kube-fencing
DB on K8sの構成(3) Replication
<< 特徴 >>
• proxy:接続管理
• keeper:レプリケー
ションを構成
• sentinel:リーダー選出
• 共有リソースなし
<< 課題 >>
• コンポーネントの多さ
• Readの分散不可
proxy proxy proxy
keeper keeper keeper
sentinel sentinel sentinel
ここまでで分かったこと
• 分散システムであるK8sでも、注意点はあるものの
DBクラスタを動かす部品が揃ってきている。
• でも、各種OSSを組み合わせたり、運用に必要な機能
(スナップショットやクローンなど)は弱い?
⇒Operatorで補完できるよ!
• あれ?Shardingはどうなった??
⇒Citusとかあるよ!MySQLなら だよ。
今後のDatabase on Kubernetes
• ReplicationやShardingなど、DBMSの機能やオプション
をK8sで動かす形の進化は今後も続く。
• Operatorによって、DBAが行ってきた作業の自動化も
進んでいく。
• しかし、それで終わりではない。
• Aurora/Hyperscaleに見られるような、DBMSの機能を
各レイヤにオフロードする、進歩的なDBクラスタが
構築できるはず。その一端を担うのはCSIかもしれない。
Azure HyperscaleAWS Aurora(PostgreSQL)
RDBMSの機能を分割した例
SQL
Transactions
Caching
Storage
Logging
Storage
Logging
Storage
Logging
CPU
Memory
Cache(SSD)
Page
Cache(SSD) Log
• DB on K8sの最終目的地はここかもしれない。

More Related Content

PDF
SQL Server コンテナ入門(Kubernetes編)
PDF
Hyper-V ネットワークの基本
PPTX
Private Azure Kubernetes Service cluster を触ってみよう♪
PDF
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
PDF
Hadoop and Kerberos
PDF
Azure Kubernetes Service 2019 ふりかえり
PPTX
地理分散DBについて
PPTX
Understanding kube proxy in ipvs mode
SQL Server コンテナ入門(Kubernetes編)
Hyper-V ネットワークの基本
Private Azure Kubernetes Service cluster を触ってみよう♪
「DevSecOpsとは?」の一歩先 (CloudNative Days Tokyo 2021)
Hadoop and Kerberos
Azure Kubernetes Service 2019 ふりかえり
地理分散DBについて
Understanding kube proxy in ipvs mode

What's hot (20)

PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PPTX
コンテナネットワーキング(CNI)最前線
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
PPTX
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PPTX
Prometheus入門から運用まで徹底解説
PDF
TLS 1.3 と 0-RTT のこわ〜い話
PPTX
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
PPTX
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)
PDF
2023年はTiDBの時代!
PPTX
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
PDF
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
PPTX
DevOps 101 - an Introduction to DevOps
PPTX
root権限無しでKubernetesを動かす
PPTX
Integrating Service Mesh with Kubernetes-based connected vehicle platform
PDF
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
PPTX
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
PDF
Deep Dive on ClickHouse Sharding and Replication-2202-09-22.pdf
PDF
Dockerを利用したローカル環境から本番環境までの構築設計
PDF
Azureを頑張る理由と頑張り方(Cloud Skills Challenge 2022 winter 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
コンテナネットワーキング(CNI)最前線
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
Prometheus入門から運用まで徹底解説
TLS 1.3 と 0-RTT のこわ〜い話
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)
2023年はTiDBの時代!
KubernetesのRBACを掘り下げてみる(Kubernetes Novice Tokyo #17 発表資料)
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
DevOps 101 - an Introduction to DevOps
root権限無しでKubernetesを動かす
Integrating Service Mesh with Kubernetes-based connected vehicle platform
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
Deep Dive on ClickHouse Sharding and Replication-2202-09-22.pdf
Dockerを利用したローカル環境から本番環境までの構築設計
Azureを頑張る理由と頑張り方(Cloud Skills Challenge 2022 winter 発表資料)
Ad

Similar to Database on Kubernetes - HA,Replication and more - (20)

PDF
20190213 Cloud-Native StorageとDatabase on Kubernetesの良い関係
PDF
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
PDF
Postgresql on kubernetesへの道
PDF
20190410 cnjp rancher-flexvolume
PPTX
趣味でのCosmos DBとの付き合い方
PPTX
Introducing PostgreSQL on Kubernetes
PPTX
AWSerにも知ってほしいDBの話
PDF
20140418 info talkセミナー資料
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
PDF
少人数チームでのkubernetesへの移行事例
PDF
20160416 Azure Data Lakeのはまりどころ
PDF
DB思い出話いろいろ(仮)
PPTX
Dokkuの活用と内部構造
PPTX
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PDF
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PPTX
サーバレスで分析基盤〜ブートキャンプに参加してみた〜
 
KEY
Core Data
PDF
経済学のための実践的データ分析 4.SQL ことはじめ
PPTX
Kubernetes ときどき Serverless -- cndjp第1回勉強会
PDF
インフラの話
20190213 Cloud-Native StorageとDatabase on Kubernetesの良い関係
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
Postgresql on kubernetesへの道
20190410 cnjp rancher-flexvolume
趣味でのCosmos DBとの付き合い方
Introducing PostgreSQL on Kubernetes
AWSerにも知ってほしいDBの話
20140418 info talkセミナー資料
2025年現在のNewSQL (最強DB講義 #36 発表資料)
少人数チームでのkubernetesへの移行事例
20160416 Azure Data Lakeのはまりどころ
DB思い出話いろいろ(仮)
Dokkuの活用と内部構造
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
サーバレスで分析基盤〜ブートキャンプに参加してみた〜
 
Core Data
経済学のための実践的データ分析 4.SQL ことはじめ
Kubernetes ときどき Serverless -- cndjp第1回勉強会
インフラの話
Ad

Database on Kubernetes - HA,Replication and more -

Editor's Notes

  • #3: Dear DirectPoll User, Thanks for creating a poll with us. Please keep this e-mail in case you want to edit your poll or re-run it at a later time. -------- Your Cockpit link -------- https://directpoll.com/c?XDVhEtJcih8Txujb8kV4OAPpGSLtJV3eE This link will always bring you back to your poll cockpit. Make sure not to lose this link. Losing it means your poll is lost. Please note that the poll expires 30 days after you last saved your poll. You'll receive a notification before this happens. Just save your poll again to get another 30 days. -------- Vote link for your audience -------- http://etc.ch/7P8A Forward this link to your audience and ask them to load it on their (mobile) devices. We're offering a QR code too to assure an easy access for your voters. The QR code will be shown on the result page before the poll is started. https://directpoll.com/v?XDVhEtJcih8Txujb8kV4OAPpGSLte1gD This is the actual full link to your voting-page. Use this if you setup your own redirect for your audience. -------- Result link -------- https://directpoll.com/r?XDbzPBd3ixYqg8l9NMhw7Htg5hYDqPrMv7uMkAbJjB This link will always show the real-time results of the current question. You can use it to display the results on a big screen to let your audience enjoy the live-experience of answers coming in. The result-screen shows the QR code before the poll is started. This guarantees easy access for your voters. -------- Don't hesitate to contact us at info@directpoll.com if you have any additional questions or feedback. Thanks for using DirectPoll - a service brought to you by Netcetera
  • #10: ・DeepDiveは読んだほうがよい。 ・「スケールアウト、セルフヒーリング、分散サービスの活用」、逆にこれができるならk8s使ってDBのせても良さそう。 ・Auroraの特徴、Multi-AZ(6本のディスク書込みで冗長化)、キャッシュレイヤの分離(DBリスタートでもキャッシュ消えない、これk8sでできないかな)、トランザクションログも分離しcheckpointがないという脅威の構造!
  • #13: ・iLO(HP)、DRAC(DELL)などのマネジメントボード経由で、外部から電源の強制断を走らせるなど。 ・クラウドでもaws-cliなどで同じことができる。
  • #20: ・LINSTORはプロビジョニングとアタッチを担当するコンテナ化されたモジュール。 ・小規模であれば十分な可用性、冗長性があり、必要十分な複雑度
  • #21: ・分散システムに気を使っているが、運用管理にはポスグレの基本的知識が必要。 ・オペレータやCRDを使っていないなど、旧世代的な設計
  • #24: https://blog.engineer-memo.com/2019/06/02/sql-database-hyperscale-%e3%81%ae%e6%a7%8b%e6%88%90%e3%82%84%e7%89%b9%e5%be%b4%e3%82%92%e5%ad%a6%e7%bf%92%e3%81%99%e3%82%8b/
  • #25: ・分散システムに気を使っているが、運用管理にはポスグレの基本的知識が必要。 ・オペレータやCRDを使っていないなど、旧世代的な設計
  • #26: ・https://github.com/cncf/toc/blob/master/DEFINITION.md#%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%89%88