Kubernetes ストレージのデプロイ、スケーリング、監視

Kubernetes入門

Frank Heilmann

Platform Architect and Freelance Instructor

PersistentVolume と PersistentVolumeClaim

Persistent Volumes と Persistent Volume Claims

  • ストレージの基本オブジェクト: PersistentVolume (PV)。Pod と並行して管理
  • PV は PersistentVolumeClaim (PVC) で Pod にマッピング
  • マッピングされた PV により、Pod 停止・強制終了・再起動後もデータが保持
  • PV によりストレージとコンピュートを分離
Kubernetes入門

StorageClass

StorageClass

  • PV のプロビジョニング:
    • 管理者が手動
    • 一般ユーザーが動的
  • 動的プロビジョニングは StorageClass (SC) により 人手なしで実行
  • StorageClass (SC):

    • 管理者が定義
    • タイプが複数(例: レイテンシ SSD/HDD、バックアップ方針 など)
  • 迷ったら StorageClass を使用

Kubernetes入門

全体像をつなぐ

  • ストレージを機能させるオブジェクトは3つのみ:

    • PersistentVolume
    • PersistentVolumeClaim
    • StorageClass
  • 永続データが必要な Pod は PersistentVolumeClaim を使用

  • PVC は Pod 用の PersistentVolume 作成をトリガー
  • 作成された PersistentVolume が要求元 Pod にマッピング
  • 指定の StorageClass が、PV のレイテンシやバックアップ方針等を定義
  • Pod が終了しても、この PersistentVolume(とデータ)は存続
Kubernetes入門

マニフェスト抜粋

PersistentVolume 付き Pod

apiVersion: v1
kind: Pod
...

spec: containers: ... volumeMounts: - name: pv-mydata mountPath: /mydata
volumes: - name: pv-mydata persistentVolumeClaim: claimName: datacamp-pvc

StorageClass を用いた PersistentVolumeClaim

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: datacamp-pvc

spec: storageClassName: "standard" accessModes: - ReadWriteOnce
resources: requests: storage: 5Gi
Kubernetes入門

ストレージ向けの「kubectl」コマンド

  • kubectl は Kubernetes ストレージの作成・監視用コマンドを網羅
  • 例:
    • kubectl get sc で利用可能な StorageClass を一覧
    • kubectl get pvc でデプロイ済み PersistentVolumeClaim を一覧
    • kubectl get pv でデプロイ済み PersistentVolume を一覧
    • kubectl apply -f <manifest> でマニフェストに定義された ストレージリソースをデプロイ可能
Kubernetes入門

Ayo berlatih!

Kubernetes入門

Preparing Video For Download...