PostgreSQL on Kubernetes
~ 主にストレージの観点から ~
2018/11/22
@tzkb
tzkoba
自己紹介
• 名 前 :Takahiro Kobayashi
• 勤務先 :SIer
• 出没場所 :Oracle、PostgreSQL、SNIA-Jとか色々
• キャリア :DB、ストレージを中心にインフラ
• 好きなもの:速いDB 、太い帯域、小さいレイテンシ
今日話すこと
• Kubernetes is 何?
• PostgreSQL on Kubernetes の現在地
• Kubernetesのストレージ事情
• Up & Running
• A guide of Postgresql on k8s ~ In terms of storage ~
Kubernetes is 何?
Node
Container
Node
Container
Node
Container
Container
Container Container
• コンテナ・オーケストレーションのプラットフォーム。
yaml 特徴として、
• 自己修復
• 宣言的設定
• Immutable
あれ?
DB向きじゃない?
PostgreSQL on Kubernetesの現在地
• Postgresqlのストリーミング・
レプリケーションをk8s上で利用。
• master-standby構成で、障害時は
standby1台が昇格。
• PGConf.Asia 2017で紹介された
Crunchy Dataの例も類似の実装。
複雑で運用するの大変そう・・
(※個人の感想です)
結局、どこで冗長化したら?
• Shared-Nothing? Shared-Disk?
DBMS
≒ Shared-Nothing
冗長化レイヤ 実装例
Container
-Ready
Container
-Native
Storage
≒ Shared-Disk
Kubernetesのストレージ事情
コントローラ コントローラ
node node
k8s
cluster
分散
ストレージ
App
db
node node
k8s
cluster
app
db
C-plane
D-plane
Container-Ready
コンテナと繋がるストレージなら何でも
Container-Native
ストレージ管理も全てコンテナ内で行う
app
app
OSS Container-Native Storage
• Rook・・・Cephをk8sクラスタ内に展開し、管理可能
app
【 : Rook】
• Cephのoperator。
• Cephは各ノードのVolを
まとめて1つにみせる。
• 同時に分散/冗長化。
• appからはCeph RBDを
マウント。
Up & Running: PostgreSQL on Rook
node node node
k8s
cluster
PostgresqlはReplicas=1、
Ceph RBDをマウント。
Rook/Cephはディスクを
仮想化し、分散+多重化。
ディスクはDBからアクセス
されず、冗長化不要。
※インスタンスストアもOK!
当然、課題はあります。
node node node
k8s
cluster
あれ?
ノード障害でFOしない?
方法はあったけど、、、
手動でFOさせるには?
バックアップ/リストア?
続きは Web PGConf で。
• 12/12(水)9:30-10:10 @Track B
Postgresql on Kubernetes ~ In terms of storage ~

Introducing PostgreSQL on Kubernetes

Editor's Notes

  • #8 ・ストレージという観点で考えると今は3つの潮流があるように思う。 ・1つは従来のSAN接続のストレージ。共有ストレージをHWとして準備して、専用・高速NWでつなぐ形。 ・もう一つはSDS。複数のサーバから仮想的なストレージをくみ上げ、コンピュートノードに提供する形。CephやGlusterがそうで、EBSも内部はそうなっている。 ・そして、SDSの亜流ともいえるHCIで使われているストレージ。サーバノード自体がストレージノードでもあり、内臓ディスクを冗長化することでサービスのフェールオーバにも対応する。  データのローカリティを担保する形もある。コンピュートノードはローカルストレージにアクセスするだけでよい。 ・Container-ReadyなSDSを使って、物理ノード(ストレージノード)は何でもご自由に。 ・AWSならi3インスタンスでインスタンスストレージを使うという手がありますね。 ・オンプレなら3dXpointでも、エンタープライズ向けのNVMe-SSDでも選り取り身取り! ・さらにNVMe-Ofを使うツールとして、東芝さんのkumoScaleなんてソフトウェアも出てたりと、IOを最速にしたいならオンプレ最強。なわけです。
  • #10 ・EBS-PV-PVCのほうがわかりやすいかも。 ・ぼくのかんがえたさいきょうのでーたべーす、HAでローカルの速いストレージ(Intel Optane、NVMe-SSD、インスタンスディスク、Azureの速いディスク)
  • #11 ・EBS-PV-PVCのほうがわかりやすいかも。 ・ぼくのかんがえたさいきょうのでーたべーす、HAでローカルの速いストレージ(Intel Optane、NVMe-SSD、インスタンスディスク、Azureの速いディスク)