Slide 1

Slide 1 text

@tzkb Kubernetesでストレージ? そもそも何に使えるの? Kubernetes Novice Tokyo #6, 2020/10/27

Slide 2

Slide 2 text

2 最近やっていること • July Tech Festa 2020 “理解して拡げる分散システムの基礎知識” • NewSQL関連のブログ投稿 “2020年現在のNewSQLについて” “NewSQLコンポーネント詳解” + =∞

Slide 3

Slide 3 text

3 1. PV/PVC、StorageClass、CSI、それ何に使うの? 2. データベースから見たストレージ 3. まとめ アジェンダ

Slide 4

Slide 4 text

4 PV/PVC、StorageClass、CSI、 それ何に使うの? 1

Slide 5

Slide 5 text

5 Terminology • PV (Persistent Volume) / PVC (Persistent Volume Claim) • StorageClass • CSI (Container Storage Interface) • それは分かったけど、いつ・どういう時に使うの?

Slide 6

Slide 6 text

6 なんかデータが消えたら困る時でしょ? • StatefulSet+PVで動かす仕組み(Operator)はたくさんある。

Slide 7

Slide 7 text

7 (参考)Redis Operator • Redisのレプリカ数は6、それぞれPVを持った構成。 ※ https://amadeusitgroup.github.io/Redis-Operator/

Slide 8

Slide 8 text

8 消えたら困ると言えば、データベースですよね? • 様々なDBがコンテナで、K8sで動かせる時代になりつつある。 プロプライエタリ OSS(RDB) OSS(NoSQL)

Slide 9

Slide 9 text

9 (参考)Kubernetes Native Testbed • ステートフルなミドルウェアをKubernetes上にてんこ盛り。 ※ https://github.com/kubernetes-native-testbed/kubernetes-native-testbed

Slide 10

Slide 10 text

10 データベースから見たストレージ 2

Slide 11

Slide 11 text

11 Kubernetesが持つ永続化の仕組み(PostgreSQLを例に) • DBをKubernetes上で動かすには、下図のように永続化が必要。 • StatefulSet – 一意に特定可能なネットワークアド レス、順次処理できるdeployなどを 提供。 • Persistent Volume – PV/PVCを用いて、データを永続化 する。 • この図ではノードローカルな ボリュームを使っているため、 データの冗長性が確保されてい ない。

Slide 12

Slide 12 text

12 クラウドストレージとCSIを使う AWS EBS CSI Driver • EBSもCSIを利用することで動的 にプロビジョニングが可能と なっている。 • データはノード障害でも失われ ないため、EBSをアタッチすれば 新しいノードでDBを復旧可能と なる。 • データ保護にはクラウドストレージが最適。

Slide 13

Slide 13 text

13 オンプレミスとCSIでも出来る クラウド・ストレージの変わりに、 既設ハードウェアをそのまま使える ケースがある。 • 下記の製品は自社ストレージを コンテナ・Kubernetesから利用 可能とする仕組みを提供。 – NetApp Trident – Pure Storage PSO 既設のストレージ • ストレージベンダでCSI対応を進めており、同じように利用可能。

Slide 14

Slide 14 text

14 DBでデータをレプリカする仕組み operator -0 -1 -2 postgres snapshot • ノード障害に備え、DBでレプリケーションを行う方法がある。 • Crunchy Data、Zalandoなどが 提供しているPostgreSQL OperatorではStreaming Replicationを用いて、 Pod間でデータをレプリカする。 • このケースではローカルボ リュームを利用していても、 データの冗長性が保たれる。 • この場合もクラウドストレージ を使えば、更に安心。 AWS EBS CSI Driver

Slide 15

Slide 15 text

15 もちろんクラウドやオンプレHWだけじゃない 名称 バックエンド ブロック? OSS/Proprietary ◎ OSS Longhorn - ◎ OSS ◎ OSS Redhat OpenShift Container Storage ◎ Proprietary • コンテナNativeなSDSもCSI経由で利用が可能。

Slide 16

Slide 16 text

16 まとめ 3

Slide 17

Slide 17 text

17 ここまでのまとめ  「Kubernetesのストレージ、完全に理解した」方、 次はデータベースに進みましょう。  データベースを動かすには、データの冗長性・安全性は 必須要件です。  「データはどこにあるのか?」 「冗長化されているのか?」 ※バックアップも を意識して、Kubernetesでもストレージをどんどん 使っていきましょう。