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
#kichijojipm Database on Kubernetesのお話(短縮版)
Search
tzkoba
August 02, 2019
Technology
1
460
#kichijojipm Database on Kubernetesのお話(短縮版)
CNDTで話した内容のRecapです。15分用。
tzkoba
August 02, 2019
Tweet
Share
More Decks by tzkoba
See All by tzkoba
The State of Distibuted Database In Japan
tzkoba
1
1.2k
#CloudNativeDB NewSQLへの誘い
tzkoba
4
3.2k
Cloud Native時代のデータベース
tzkoba
13
15k
2020年DBプラットフォーム (超個人的)5大ニュース
tzkoba
0
1.1k
PostgreSQLプラットフォームの徹底比較(コンテナからクラウドまで)
tzkoba
6
10k
Kubernetesでストレージ?そもそも何に使えるの?
tzkoba
0
1.2k
データ損失を回避しよう 各DBの機能比較
tzkoba
3
1.9k
昨今のデータデバイス(アーカイブ編)
tzkoba
3
1.6k
理解して拡げる分散システムの基礎知識
tzkoba
21
11k
Other Decks in Technology
See All in Technology
AIエージェント時代のエンジニアになろう #jawsug #jawsdays2025 / 20250301 Agentic AI Engineering
yoshidashingo
8
3.9k
日経のデータベース事業とElasticsearch
hinatades
PRO
0
260
AI自体のOps 〜LLMアプリの運用、AWSサービスとOSSの使い分け〜
minorun365
PRO
9
750
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
540
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
2.9k
ExaDB-XSで利用されているExadata Exascaleについて
oracle4engineer
PRO
3
280
EDRの検知の仕組みと検知回避について
chayakonanaika
12
5.2k
役員・マネージャー・著者・エンジニアそれぞれの立場から見たAWS認定資格
nrinetcom
PRO
4
6.5k
フォーイット_エンジニア向け会社紹介資料_Forit_Company_Profile.pdf
forit_tech
1
1.7k
手を動かしてレベルアップしよう!
maruto
0
240
Amazon Aurora のバージョンアップ手法について
smt7174
2
180
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
19k
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
Facilitating Awesome Meetings
lara
53
6.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Side Projects
sachag
452
42k
Become a Pro
speakerdeck
PRO
26
5.2k
Speed Design
sergeychernyshev
27
810
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Site-Speed That Sticks
csswizardry
4
410
Why Our Code Smells
bkeepers
PRO
336
57k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
380
Transcript
Cloud Native Storageが拓く Database on Kubernetesの未来 吉祥寺.pm #19 2019/8/2 @tzkb
2 自己紹介 名 前: Takahiro Kobayashi 職 種:
DBを中心としたインフラエンジニア 好 物: 速いDB、太い帯域、小さなレイテンシ 出没する場所 Oracle、PostgreSQL、Kubernetesなどの勉強会
3 PostgreSQL on Kubernetes、色々やってます CloudNativeDays Tokyo 2019 Cloud Native Storageが拓く
Database on Kubernetesの未来 PGConf.Asia 2019 @Bali Building PostgreSQL as a Service with Kubernetes + =∞
4 アジェンダ 1. そもそもKubernetesって何? 2. Kubernetes上でデータベースを動かす際の課題 3. Database on Kubernetesの検証
HAパターン Replication(Operator)パターン 4. DBプラットフォームとしてのKubernetes
5 1. そもそもKubernetesって何?
6 Kubernetesを知っていますか? 「おれがKubernetesだ。」 「Kubernetes、完全に理解した。」 「Kubernetes、なにもわからない。」
7 Kubernetes=コンテナ・オーケストレーター コンテナ コンテナ コンテナ コンテナ コンテナ • 軽量VMであるコンテナを良い感じに管理してくれる。 特徴として以下がある。
• 宣言的設定 構築手順を定めるのではなく、 状態を定義する。 • 自己修復 上記の状態に自動で復旧 • Immutable Drop & Create PetではなくCattle
8 Kubernetesはデータベースに不向き? Node Node Node Master Slave Replicate • DBやSDSは、K8sで扱うには向いていないとされてきた。
特徴が足枷に。 • 宣言的設定 • 自己修復 一貫性を担保するために、リカ バリ手順が必要 起動順序などが問われるケース もある • Immutable データ消失はありえない ペット的な扱いが必要
10 Storageにも色々あるけれど • CNCFという団体で定めたLandscapeにStorageも沢山。 • ただ、今までのストレージと何が違うのか分かりづらい。
11 Compute Control plane Data plane Kubernetesから使える2種類のストレージ Controler Controler •
K8sがストレージのどこまでを管理する/できるかで違いがある。 Kubernetes Ready Kubernetes Native
12 2. Kubernetes上で データベースを動かす際の課題
13 Kubernetesの本質は分散システム • K8sクラスタはetcdを中心とした分散システムとして構築される。 • つまりノードが未応答の際に、 – ネットワーク分断? – プロセス(kubelet)障害?
– ノード障害? どれに該当するか、判断が難しい。 • ディスクリソースがattachされて いれば、その状態も把握する必要 がある。 永続ボリュームを利用する workloadが嫌われる理由はこれ。 FailOver?
14 解はあるのか?DBアーキテクトは知っている。 • 状態がわからないなら、安全側に倒して 処理を継続させたら良いんじゃない? • 共有リソースをつくらなければ 良いんじゃない? • それってクラスタリングでは昔から
やっていることだよね。
15 分散システムへの対応① HA構成におけるFencing VIP Linux-HA Controller Controller << 状態不明なマスターが発生したら>> ①
強制的にノードの電源落とす i. プロセスを確実に停止 ii. ストレージのマウントを外す iii. VIPを外す ② その上で別ノードでリソースを 獲得して、マスターを起動 ※強制電源断はHWベンダ提供の管理ポートや クラウドAPIを通して行われる。 • 障害ノードをフェンスで囲うこと(隔離) =Fencing
16 分散システムへの対応② Replicationにおけるリーダー選出 WAL データは最新、 リーダーに選出。 他はスレーブ。 • 複数候補から常に1台のマスタ を選出
• 元マスタが復帰後もスレーブに なっていることを通知する <<状態不明なマスタが発生したら>> ① 残ったスレーブから1台の リーダーを選出する ② 選出されたらマスターへ昇格 ③ 復帰ノードはスレーブになる • アルゴリズムとしてはPaxos、Raftなどが有名。 マスタ スレーブ
17 3. Database on Kubernetesの検証
18 HA構成パターン(i): Replicas:1 • PostgreSQLはStatefulSet、PVとしてRook/Cephを用いる。 • DBもストレージも全て K8sで管理するHA構成 • 共有ディスクはCeph
• kube-fencingでNode 障害時のFencing << 課題 >> • 複雑すぎるCeph • ネットワーク越しのIO による性能劣化 kube-fencing
19 HA構成パターン(ii): Replicas:1 kube-fencing • LINSTORがProvisioning/AttachするDRBDボリュームを用いる。 • DBもストレージも全て K8sで管理するHA構成 •
DRBDでデータ冗長化 • シンプル • ReadはローカルIO、 性能面でCephに優る << 課題 >> • スケール上限あり
20 (参考)SDS別のベンチマーク結果 シングル構成(EBS) Rook/Ceph DRBD 1インスタンス 5インスタンス 2インスタンス 100 37.8
77.1 • pgbenchによる簡易ベンチマークでは以下のような差が出た。 TPS
21 Replicationパターン(Operator): • KubeDBはPostgreSQLに限らず、様々なDBを扱えるOperator。 kubedb-operator -0 -1 -2 postgres snapshot
dormantdabases • KubeDBでは – PostgreSQL – MySQL – Redis 等のCRDが準備済。 • kubedb-operatorが PostgreSQLのSRを構成。 • SnapshotのCRDもあり、 バックアップ・リストア が可能。 S3等にスナップショット の保存が可能
22 4. DBプラットフォームとしてのKubernetes
23 ここまで見てきたこと DBクラスタリングをKubernetes Nativeで行うことに ついては、SDSやFencingなど部品が揃いつつある。 Replication構成をK8s化する試みは続いており、 Operatorを利用してDBAタスクを自動化する流れが 生まれてきている。
しかし、それで終わりではない(かも知れない)。 Cloud Native Storage + + = ???
24 DB/Storage プラットフォームとしてのKubernetes DBaaS by Kubernetes STaaS by Kubernetes <<DBaaSの基本要素>>
• HA • Replication • DB Operator <<STaaSの基本要素>> • シンプルな冗長化 • 分散ストレージ • 互換性の高いIF(CSI) • “Platform for Platforms”として、K8sが各Serviceを支える。
Building PostgreSQL as a Service with Kubernetes PGConf.Asia 2019 2019/9/9
@tzkb
26 Questions? @tzkb @tzkoba