$30 off During Our Annual Pro Sale. View Details »

Kubernetesでストレージ?そもそも何に使えるの?

tzkoba
October 27, 2020

 Kubernetesでストレージ?そもそも何に使えるの?

2020/10/27のKubernetes Novice Tokyo#6のLT資料です。

tzkoba

October 27, 2020
Tweet

More Decks by tzkoba

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. 16
    まとめ
    3

    View Slide

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

    View Slide