Kubernetesでつくる
PostgreSQL as a Service
PostgreSQL Conference Japan 2019 , 11/15
Takahiro, Kobayashi
( @tzkb)
Slide 2
Slide 2 text
2
最近やっていること
• Cloud Native Days Tokyo 2019
“Cloud Native Storageが拓く
Database on Kubernetesの未来”
• PGConf.Asia 2019
“Building PostgreSQL as a Service
with Kubernetes”
+ =∞
Slide 3
Slide 3 text
3
1. PostgreSQL as s Serviceの目指すところ
2. Database on Kubernetesの課題
3. 銀の弾丸を探す
4. PostgreSQL on Kubernetesの実装例
5. DBプラットフォームとしてのKubernetes
アジェンダ
Slide 4
Slide 4 text
4
PostgreSQL as a Serviceの目指す所
1
Slide 5
Slide 5 text
5
今日のゴール
あなたはDBプラットフォーマーです。
社内や顧客に提供する PostgreSQL as a Serviceを
構築する必要があります。
パブリッククラウドを使いますか?
オンプレミスでやりますか?
VMにしますか?コンテナにしますか?
Kubernetes の力を借りてみましょう。
Slide 6
Slide 6 text
6
PostgreSQL as a Serviceの構成パターン
Compute
Storage
Managed
Amazon Aurora
Amazon Redshift
Amazon RDS
VM-based on Kubernetes
• DBaaSの形からVMベース、コンテナベースまで選択肢は多様。
10
(今更ですが)コンテナとは
Node
Linux Kernel
Container Runtime(Docker)
Container Container
Files
Process
Files
Process
• 一言でいえば、隔離されたプロセスと最小限のファイルシステム。
• OS部分(カーネル)は共有。
• VMに比べてサイズが小さく、
効率的にリソースを管理で
きる。
• ノードを超えて、配置を管
理することが基本的に出来
ない。
Slide 11
Slide 11 text
11
(今更ですが) Kubernetesとは
Pod Pod
Pod
Pod Pod
• ステートレスなアプリケーションを動かす際に有用とされる。
特徴として、
• 宣言的設定
• オートヒーリング
• Immutable
DB向きじゃない?
※KubernetesのPod=1つ以上のコンテナを
まとめて管理する概念
23
Fencingとは
VIP
Linux-HA
Controller Controller
<< 状態不明なマスターが発生したら>>
① 強制的にノードの電源落とす
i. プロセスを確実に停止
ii. ストレージのマウントを外す
iii. VIPを外す
② その上で別ノードでリソースを獲得し
て、マスターを起動
※強制電源断はHWベンダ提供の管理ポートや
クラウドAPIを通して行われる。
• 障害ノードをフェンスで囲うこと(隔離) =Fencing