ブロックストレージCSIの例
    • PDF

    ブロックストレージCSIの例

    • PDF

    Article Summary

    VPC環境で利用できます。

    ブロックストレージCSIで説明したCSIの使用方法に基づき、様々な方式でボリュームを割り当てる例です。

    Podに複数のボリュームを割り当て

    以下は、2つの新規ブロックストレージを作成してPodにマウントし、作成をリクエストするボリュームについてそれぞれPersistentVolumeClaimをリクエストする例です。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: csi-pod-1
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: nks-block-storage
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: csi-pod-2
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: nks-block-storage
    ---
    kind: Pod
    apiVersion: v1
    metadata:
      name: my-csi-app
    spec:
      containers:
        - name: my-csi-app
          image: busybox
          volumeMounts:
          - mountPath: "/data/pod-1/"
            name: my-volume-1
          - mountPath: "/data/pod-2/"
            name: my-volume-2
          command: [ "sleep", "1000000" ]
      volumes:
        - name: my-volume-1
          persistentVolumeClaim:
            claimName: csi-pod-1
        - name: my-volume-2
          persistentVolumeClaim:
            claimName: csi-pod-2
    

    DeploymentでPersistentVolumeを利用する

    以下は、PersistentVolumeClaimを作成して新規ボリュームの作成をリクエストする際に、Deploymentの templateclaimNameを明示することで作成されたボリュームをマウントする例です。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: csi-deployment-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: nks-block-storage
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-csi-app
    spec:
      selector:
        matchLabels:
          app: my-csi-app
      replicas: 1
      template:
        metadata:
          labels:
            app: my-csi-app
        spec:
          containers:
            - name: my-frontend
              image: busybox
              volumeMounts:
              - mountPath: "/data"
                name: my-volume
              command: [ "sleep", "1000000" ]
          volumes:
            - name: my-volume
              persistentVolumeClaim:
                claimName: csi-deployment-pvc
    

    StatefulSetでPersistentVolumeを利用する

    以下は、StatefulSetvolumeClaimTemplatesを定義して各replicaに新しいPersistentVolumeClaimを自動で作成する例です。

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: my-csi-app
    spec:
      serviceName: my-csi-app
      selector:
        matchLabels:
          app: my-csi-app
      replicas: 1
      template:
        metadata:
          labels:
            app: my-csi-app
        spec:
          containers:
            - name: my-frontend
              image: busybox
              volumeMounts:
              - mountPath: "/data"
                name: my-volume
              command: [ "sleep", "1000000" ]
      volumeClaimTemplates:
        - metadata:
            name: my-volume
          spec:
            accessModes: ["ReadWriteOnce"]
            resources:
              requests:
                storage: 10Gi
    

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.