既存の永続ディスクを PersistentVolume として使用する

このページでは、データが格納された既存の Compute Engine 永続ディスクを使用して PersistentVolume を作成する方法と、PersistentVolume をポッドで使用する方法について説明します。

PersistentVolume の作成

pd-name という名前の 500 GB の永続ディスクがすでにある場合、以下のマニフェスト ファイルには対応する PersistentVolume および PersistentVolumeClaim が記述されています。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-demo
spec:
  storageClassName: ""
  capacity:
    storage: 500G
  accessModes:
    - ReadWriteOnce
  gcePersistentDisk:
    pdName: pd-name
    fsType: ext4
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-claim-demo
spec:
  # It's necessary to specify "" as the storageClassName
  # so that the default storage class won't be used, see
  # https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
  storageClassName: ""
  volumeName: pv-demo
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 500G

kubectl apply -f existing-pd.yaml を使用して、PersistentVolume と PersistentVolumeClaim を作成します。

ポッド内での PersistentVolume の使用

PersistentVolume と PersistentVolumeClaim がクラスタ内に存在したら、コンテナの volumeMounts.mountPathvolumeMounts.name の値を指定することで、ポッドのコンテナがボリュームにアクセスすることを許可できます。次に例を示します。

kind: Pod
apiVersion: v1
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
       claimName: pv-claim-demo
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage

このマニフェストをクラスタに適用すると、ポッドが作成され、task-pv-container コンテナは、その /usr/share/nginx/html/ ディレクトリにあるボリュームにアクセスできます。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Kubernetes Engine のドキュメント