Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PersistentVolumeClaimResizeで ボリュームを途中で拡張しよう @Cloud Native Developers JP #08 〜結局Kubernetesのストレージどうするの?〜 LT / cndjp8_pvcr

PersistentVolumeClaimResizeで ボリュームを途中で拡張しよう @Cloud Native Developers JP #08 〜結局Kubernetesのストレージどうするの?〜 LT / cndjp8_pvcr

PersistentVolumeClaimResizeでボリュームを途中で拡張しよう
@Cloud Native Developers JP #08〜結局Kubernetesのストレージどうするの?〜 LT
Masaya Aoyama (@amsy810)

Masaya Aoyama (@amsy810)

October 04, 2018
Tweet

More Decks by Masaya Aoyama (@amsy810)

Other Decks in Technology

Transcript

  1. Japan Container Days v18.04 Keynote 登壇 Cloud Native Meetup Tokyo Organizer

    (+ KubeCon日本人会 + JKD) CKA #138、CKAD #2 連載「今こそ始めよう!Kubernetes 入門」 @ThinkIT OpenStack / Kubernetes Contributor Masaya Aoyama (@amsy810) Infrastructure Engineer
  2. Dynamic Provisioning時の PersistentVolume と PersistentVolumeClaim PersistentVolumeClaim PersistentVolumeの要求を発行 kind: PersistentVolumeClaim apiVersion:

    v1 metadata: name: sample-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 8G storageClassName: sample-sc apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: sample-sc parameters: type: pd-ssd provisioner: kubernetes.io/gce-pd reclaimPolicy: Delete 8 G
  3. Dynamic Provisioning時の PersistentVolume と PersistentVolumeClaim GCP P Disk PersistentVolumeClaim PersistentVolume

    PersistentVolumeの要求を発行 要求に合致したPersistentVolumeを作成 要求に合致したディスクの実体を作成(同時) 8 G 8 G 8 G
  4. 通常はPersistentVolumeClaimの サイズ変更はできない $ kubectl patch pvc sample-pvc \ --patch '{"spec":

    {"resources": {"requests": {"storage": "1G"}}}}' The PersistentVolumeClaim "sample-pvc" is invalid: spec: Forbidden: field is immutable after creation
  5. PersistentVolumeClaimResizeの利用 PersistentVolumeClaim PersistentVolumeの要求を発行 kind: PersistentVolumeClaim apiVersion: v1 metadata: name: sample-pvc

    spec: accessModes: - ReadWriteOnce resources: requests: storage: 8G storageClassName: sample-sc apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: sample-sc parameters: type: pd-ssd provisioner: kubernetes.io/gce-pd reclaimPolicy: Delete allowVolumeExpansion: true 8 G
  6. PersistentVolumeClaimResizeの利用 GCP P Disk PersistentVolumeClaim PersistentVolume kind: PersistentVolumeClaim apiVersion: v1

    metadata: name: sample-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 8G storageClassName: sample-sc 8 G 8 G 8 G 登録されているPersistentVolumeClaim
  7. PersistentVolumeClaimResizeの利用 GCP P Disk PersistentVolumeClaim PersistentVolume kind: PersistentVolumeClaim apiVersion: v1

    metadata: name: sample-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 16 G storageClassName: sample-sc 16 G 8 G 8 G PVCのマニフェストを変更
  8. PersistentVolumeClaimResizeの利用 GCP P Disk PersistentVolumeClaim PersistentVolume kind: PersistentVolumeClaim apiVersion: v1

    metadata: name: sample-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 16 G storageClassName: sample-sc 16 G 8 G 16 G Kubernetes 1.10時点では PVの表示が変わらない問題
  9. リサイズの条件 リサイズはより大きなディスクサイズへのみ可能 $ kubectl patch pvc sample-pvc \ --patch '{"spec":

    {"resources": {"requests": {"storage": "1G"}}}}' The PersistentVolumeClaim "sample-pvc" is invalid: spec.resources.requests.storage: Forbidden: field can not be less than previous value
  10. PersistentVolumeClaimResizeの対応状況 Alpha:Kubernetes 1.8、 Beta:Kubernetes 1.11 •  gcePersistentDisk •  awsElasticBlockStore • 

    Cinder •  glusterfs •  rbd •  Azure File •  Azure Disk •  Portworx https://kubernetes.io/docs/concepts/storage/persistent-volumes/#storageclasses
  11. まとめ Persistent Volumeのリサイズは可能 Kubernetes 1.8 – 1.10  PVCのリサイズが可能(alpha) Kubernetes 1.11

     PVCのリサイズが可能(beta)  GKEの非Alphaクラスタでも利用可能(予定) Kubernetes 1.12  使用中のPVCのリサイズも可能(alpha)
  12. https://bit.ly/k8s-amsy810 Kubernetesの各リソースについて体系的かつ網羅的に説明 Cloud Nativeな開発を促進させる周辺エコシステムについても紹介 ▪⽬次案 第1章 Dockerの復習とHello, Kubernetes 第2章 なぜKubernetesが必要なのか?

    第3章 Kubernetes環境の選択肢 第4章 APIリソースとkubectl 第5章 Workloadsリソース 第6章 Discovery & LBリソース 第7章 Config & Storageリソース 第8章 ClusterリソースとMetadataリソース 第9章 リソース管理とオートスケーリング 第10章 ヘルスチェックとコンテナのライフサイクル 第11章 メンテナンスとノードの停⽌ 第12章 ⾼度で柔軟なスケジューリング 第13章 セキュリティ 第14章 マニフェストの汎⽤化を⾏うオープンソースソフトウェア 第15章 モニタリング 第16章 コンテナログの集約 第17章 CI/CD環境 第18章 マイクロサービスとServiceMesh 第19章 Kubernetesのアーキテクチャ 第20章 Kubernetesとこれから 付録