Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ボリュームをプロビジョニングする

共同作成者 netapp-aruldeepa

構成された Kubernetes StorageClass を使用して PV へのアクセスを要求する PersistentVolumeClaim (PVC) を作成します。その後、PV をポッドにマウントできます。

概要

"永続ボリュームクレーム"(PVC) は、クラスター上の PersistentVolume へのアクセス要求です。

PVC は、特定のサイズまたはアクセス モードのストレージを要求するように構成できます。関連付けられた StorageClass を使用すると、クラスター管理者は PersistentVolume のサイズやアクセス モードだけでなく、パフォーマンスやサービス レベルなどの制御も行えます。

PVC を作成したら、ボリュームをポッドにマウントできます。

PVCを作成する

手順
  1. PVCを作成

    kubectl create -f pvc.yaml
  2. PVC ステータスを確認します。

    kubectl get pvc
NAME        STATUS  VOLUME     CAPACITY   ACCESS MODES  STORAGECLASS AGE
pvc-storage Bound   pv-name    1Gi        RWO                  5m
  1. ボリュームをポッドにマウントします。

    kubectl create -f pv-pod.yaml
    メモ 進捗状況は以下で確認できます。 kubectl get pod --watch
  2. ボリュームがマウントされていることを確認する /my/mount/path

    kubectl exec -it task-pv-pod -- df -h /my/mount/path
  3. これでポッドを削除できます。 Pod アプリケーションは存在しなくなりますが、ボリュームは残ります。

    kubectl delete pod pv-pod

サンプルマニフェスト

PersistentVolumeClaim サンプルマニフェスト

これらの例は、基本的な PVC 構成オプションを示しています。

RWO アクセス付き PVC

この例では、RWOアクセスを持つ基本的なPVCが、StorageClassに関連付けられています。 basic-csi

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-storage
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: basic-csi
NVMe/TCP を使用した PVC

この例では、RWOアクセスを持つNVMe/TCPの基本的なPVCを示しており、これはStorageClassに関連付けられています。 protection-gold

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-san-nvme
spec:
accessModes:
  - ReadWriteOnce
resources:
  requests:
    storage: 300Mi
storageClassName: protection-gold
ポッドマニフェストのサンプル

これらの例は、PVC をポッドに接続するための基本的な構成を示しています。

基本設定
kind: Pod
apiVersion: v1
metadata:
  name: pv-pod
spec:
  volumes:
    - name: storage
      persistentVolumeClaim:
       claimName: pvc-storage
  containers:
    - name: pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/my/mount/path"
          name: storage
基本的なNVMe/TCP構成
apiVersion: v1
kind: Pod
metadata:
  name: pod-nginx
spec:
  volumes:
    - name: basic-pvc
      persistentVolumeClaim:
        claimName: pvc-san-nvme
  containers:
    - name: task-pv-container
      image: nginx
      volumeMounts:
        - mountPath: "/my/mount/path"
          name: basic-pvc

参照"KubernetesとTridentオブジェクト"ストレージクラスがどのように相互作用するかの詳細については、 PersistentVolumeClaim Trident がボリュームをプロビジョニングする方法を制御するためのパラメータ。