Alibaba Cloud 静的ボリュームは、直接使用することも、PV および PVC を介して使用することもできます。

始める前に

ディスクをボリュームとして使用するには、まず ECS コンソールでディスクを作成する必要があります。 ディスクの作成方法については、「 クラウドディスクの作成」をご参照ください。

ボリュームとして直接

次の disk-deploy.yaml ファイルを使用し、ポッドを作成します。

  1. disk-deploy.yamlを次の内容のファイルとともに作成します。
    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"
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
              name: web
            volumeMounts:
            - name: d-wz9f6l6nm0uvazgh7y17
              mountPath: /data
          volumes:
            - name: "d-wz9f6l6nm0uvazgh7y17"
              flexVolume:
                driver: "alicloud/disk"
                fsType: "ext4"
                options:
                  volumeId: "d-wz9f6l6nm0uvazgh7y17"
  2. 次のコマンドを実行し、ポッドを作成します。
    kubectl apply -f disk-deploy.yaml

volumesセクションで、namevolumeId を同じ値に設定することを推奨します。

クラスターが複数のゾーンにデプロイされている場合、ポッドとディスクを同じゾーンにスケジュールする必要があります。

次のように、ポッドの nodeSelector を追加する必要があります。
nodeSelector:
        failure-domain.beta.kubernetes.io/zone: cn-hangzhou-b

PV および PVC を介して

  1. ディスクを使用した PV の作成
    コンソールまたは YAML ファイルを使用して、PV を作成できます。
    • YAML ファイルによる PV の作成
      以下の disk-pv.yaml ファイルを使用して PV を作成します。
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: d-bp1j17ifxfasvts3****
        labels:
          failure-domain.beta.kubernetes.io/zone: cn-hangzhou-b
          failure-domain.beta.kubernetes.io/region: cn-hangzhou
      spec:
        capacity:
          storage: 20Gi
        storageClassName: disk
        accessModes:
          - ReadWriteOnce
        flexVolume:
          driver: "alicloud/disk"
          fsType: "ext4"
          options:
            volumeId: "d-bp1j17ifxfasvts3****"
      PV の nameと、ディスク ID である volumeIdを同じにする必要があります。
    • コンソールからの PV の作成
      1. Container Service コンソール にログインします。
      2. 左側のナビゲーションウペインで、[クラスター] > [ボリューム]を選択し、[ボリューム及びボリュームクレーム] ページに移動します。
      3. [ボリューム] タブで [作成] をクリックします。
        永続ボリューム
      4. [ボリュームの作成] ダイアログボックスでパラメーターを設定します。
        • ストレージタイプ:この例では、ストレージタイプを [クラウドディスク] に設定します。
        • アクセスモード: デフォルトは ReadWriteOnce です。
        • クラウドディスク ID : クラスターと同じリージョンとゾーンにあるディスクを選択します。
        • ファイルシステムタイプ: ディスクに保存されるデータのデータタイプを選択します。 サポートされるタイプは、ext4、ext3、xfs および vfat です。 デフォルトは ext4 です。
        • ラベル: PV にラベルを追加します。
        PV の設定
      5. 設定完了後、[作成] をクリックします。
  2. PVC の作成
    以下の disk-pvc.yaml ファイルを使用して PVC を作成します。
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-disk
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: disk
      resources:
        requests:
          storage: 20Gi
  3. ポッドの作成
    以下の disk-pod.yaml file ファイルを使用してポッドを作成します。
    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"
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
              name: web
            volumeMounts:
            - name: pvc-disk
              mountPath: /data
          volumes:
            - name: pvc-disk
              persistentVolumeClaim:
                claimName: pvc-disk