ダイナミックボリュームを使用するには、StorageClass を手動で作成し、storageClassName を使用して PVC でディスクタイプを指定する必要があります。

StorageClass の作成

  1. storage-class.yaml ファイルを作成し、次のコードをファイルにコピーします。
    kind: StorageClass
    apiVersion: storage.k8s.io/v1beta1
    metadata:
      name: alicloud-disk-ssd-hangzhou-b
    provisioner: alicloud/disk
    parameters:
      type: cloud_ssd
      regionid: cn-hangzhou
      zoneid: cn-hangzhou-b
    reclaimPolicy: Retain
  2. 次のコマンドを実行し、StorageClass を作成します。
    kubectl apply -f storage-class.yaml
パラメーター:
  • provisioner: このパラメーターを alicloud/disk に設定します。これは、Alibaba Cloud ディスクのプロビジョナープラグインを使用して StorageClass を作成することを示しています。
  • type: ディスクタイプ。 有効値: cloud、cloud_efficiency、cloud_ssd、cloud_essd、および available。 このパラメーターを available に設定すると、システムはウルトラディスク、ESSD、SSD の順にディスクの作成を試み、ディスクが作成されるまで試行を停止します。
  • regionid: 作成するディスクのリージョン。
  • reclaimPolicy: ディスクを再要求するためのポリシー。 既定値は false です。 このパラメーターを Retain に設定することもできます。 高度なデータセキュリティが必要な場合は、誤って削除されないように、このパラメーターを Retain に設定することを推奨します。
  • zoneid: 作成するディスクのゾーン。
    このパラメーターをマルチゾーンクラスターに設定すると、複数のゾーンを指定することができます。 例:
    zoneid: cn-hangzhou-a,cn-hangzhou-b,cn-hangzhou-c
  • encrypted: 任意。 ディスクを暗号化するかどうかを指定します。 規定値は false であり、ディスクが暗号化されていないことを示しています。

PVC の作成

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: disk-ssd
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: alicloud-disk-ssd-hangzhou-b
  resources:
    requests:
      storage: 20Gi
---
kind: Pod
apiVersion: v1
metadata:
  name: disk-pod-ssd
spec:
  containers:
  - name: disk-pod
    image: nginx
    volumeMounts:
      - name: disk-pvc
        mountPath: "/mnt"
  restartPolicy: "Never"
  volumes:
    - name: disk-pvc
      persistentVolumeClaim:
        claimName: disk-ssd

Default StorageClasses:

マルチゾーンクラスターでは、StorageClass を手動で作成して、必要なディスクのゾーンを指定する必要があります。

規定では、次のタイプの StorageClasses が単一ゾーンクラスターで使用することができます。
  • alicloud-disk-efficiency: ウルトラディスク。
  • alicloud-disk-ssd: SSD ディスク。
  • alicloud-disk-essd: ESSD ディスク。
  • alicloud-disk-available: このオプションは、高可用性を保証します。 システムは最初にウルトラディスクの作成を試みます。

    指定されたゾーンで使用可能なウルトラディスクがない場合、システムは SSD の作成を試みます。 利用可能な SSD がない場合、システムは ESSD の作成を試みます。

クラウドディスクを使用したマルチインスタンス StatefulSet の作成

volumeClaimTemplates を使用して、マルチインスタンス StatefulSets を作成することを推奨します。 これにより、複数の PVC と PV が動的に作成され、それらが結合されます。

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx
---
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx
  serviceName: "nginx"
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: disk-ssd
          mountPath: /data
  volumeClaimTemplates:
  - metadata:
      name: disk-ssd
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: alicloud-disk-ssd-hangzhou-b
      resources:
        requests:
          storage: 20Gi

コンソールで動的 PV を使用することもできます。 詳細については、「ディスクを使用した、コンソールでの動的永続ボリュームの作成」をご参照ください。