日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

QuotaPath數(shù)據卷

您可以在本地盤上通過文件系統(tǒng)(如Ext4)的ProjectQuota功能,實現(xiàn)目錄級別的容量Quota控制,通過CSI插件實現(xiàn)QuotaPath數(shù)據卷的切分、限額、掛載等生命周期管理。本文介紹如何使用QuotaPath數(shù)據卷。

前提條件

已部署LVM CSI插件。具體操作,請參見步驟二:部署Plugin和Provisioner組件

QuotaPath與HostPath、LVM的區(qū)別

使用HostPath、LVM、QuotaPath都可以實現(xiàn)Pod對主機存儲空間的訪問,但其各具特點:

  • HostPath將目錄進行切分,多個目錄間共享相同存儲設備的空間、IO等資源。

  • LVM將設備進行虛擬化,然后切分成多個卷,每個卷都獨立擁有存儲限額。

  • QuotaPath使用文件系統(tǒng)的Quota功能,將目錄進行切分,每個目錄擁有獨立的存儲限額。

功能介紹

  • QuotaPath數(shù)據卷生命周期管理:自動創(chuàng)建、刪除、掛載、卸載。

  • QuotaPath數(shù)據卷擴容功能。

  • 節(jié)點本地存儲管理:自動運維QuotaPath根目錄。

  • QuotaPath卷的集群容量感知能力。

注意事項

  • QuotaPath為本地存儲類型,不適用于高可用數(shù)據場景。

  • QuotaPath根目錄運維、本地存儲容量感知為可選項(暫緩提供)。

  • 若使用Root特權模式啟動容器,則Quota限制不會生效(Ext4特性)。

使用QuotaPath示例

使用CSI-Provisioner自動創(chuàng)建PV,有以下特點:

  • StorageClass中需要指定rootPath名字。

  • 如果期望創(chuàng)建的PV在某個節(jié)點,需要給PVC添加Label:volume.kubernetes.io/selected-node: nodeName。

  1. 創(chuàng)建StorageClass。

    1. 使用以下內容創(chuàng)建alicloud-local-quota.yaml文件。

      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        name: alicloud-local-quota
      parameters:
        volumeType: QuotaPath
        rootPath: /mnt/quota
      provisioner: localplugin.csi.alibabacloud.com
      reclaimPolicy: Delete
      allowVolumeExpansion: true
      volumeBindingMode: WaitForFirstConsumer

      參數(shù)

      描述

      volumeType

      本地存儲類型,本示例中存儲類型為QuotaPath。

      rootPath

      可選,表示QuotaPath所在目錄名稱。

    2. 執(zhí)行以下命令創(chuàng)建StorageClass。

      kubectl create -f alicloud-local-quota.yaml
  2. 創(chuàng)建PVC。

    1. 使用以下內容創(chuàng)建csi-quota.yaml文件。

      默認CSI插件會使用/mnt/quotapath.namespacex.x作為QuotaPath的根目錄,所有的PV都將在這個目錄下面分配并創(chuàng)建子目錄。

      可以在PVC上添加以下Annotation,用來自定義QuotaPath父目錄volume.kubernetes.io/selected-storage: /mnt/xxx

      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: csi-quota
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 2Gi
        storageClassName: alicloud-local-quota
    2. 執(zhí)行以下命令創(chuàng)建PVC。

      kubectl create -f csi-quota.yaml
  3. 使用以下模板創(chuàng)建應用。

    1. 使用以下內容創(chuàng)建web-quota.yaml文件。

      apiVersion: v1
      kind: Service
      metadata:
        name: nginx
        labels:
          app: nginx
      spec:
        ports:
        - port: 80
          name: web
        selector:
          app: nginx
      ---
      apiVersion: apps/v1
      kind: StatefulSet
      metadata:
        name: web-quota
      spec:
        selector:
          matchLabels:
            app: nginx
        serviceName: "nginx"
        template:
          metadata:
            labels:
              app: nginx
          spec:
            containers:
            - name: nginx
              image: nginx
              volumeMounts:
              - name: disk-ssd
                mountPath: /data
            volumes:
              - name: "disk-ssd"
                persistentVolumeClaim:
                  claimName: csi-quota
    2. 執(zhí)行以下命令創(chuàng)建應用。

      kubectl create -f web-quota.yaml
  4. 查看應用狀態(tài)。

    執(zhí)行以下命令查看Pod信息。

    kubectl get pod |grep quota

    預期輸出:

    NAME          READY   STATUS    RESTARTS   AGE
    web-quota-0   1/1     Running   0          16s

    執(zhí)行以下命令查看PVC信息。

    kubectl get pvc

    預期輸出:

    NAME        STATUS   VOLUME                CAPACITY   ACCESS MODES   STORAGECLASS           AGE
    csi-quota   Bound    local-f4b129a5-****   2Gi        RWO            alicloud-local-quota   48s

    執(zhí)行以下命令查看PV信息。

    kubectl get pv |grep quota

    預期輸出:

    NAME                  CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM               STORAGECLASS           REASON   AGE
    local-f4b129a5-****   2Gi        RWO            Delete           Bound    default/csi-quota   alicloud-local-quota            66s

    執(zhí)行以下命令查看Pod掛載詳情。

    kubectl exec -ti web-quota-0 sh
    df |grep data

    預期輸出:

    Filesystem  1K-blocks  Used Available Use% Mounted on
    /dev/vdd    2097152       4   2097148   1% /data

    執(zhí)行以下命令列出/data下的目錄。

    ls /data

    預期輸出:

    lost+found

    執(zhí)行以下命令在/data下新增test目錄并查看。

    touch /data/test
    ls /data

    預期輸出:

    lost+found test
  5. 擴容數(shù)據卷。

    執(zhí)行以下命令查看PVC信息。

    kubectl get pvc

    預期輸出:

    NAME        STATUS   VOLUME                CAPACITY   ACCESS MODES   STORAGECLASS           AGE
    csi-quota   Bound    local-f4b129a5-****   2Gi        RWO            alicloud-local-quota   42s

    執(zhí)行以下命令將PVC擴容到3 GiB。

    kubectl patch pvc csi-quota -p '{"spec":{"resources":{"requests":{"storage":"3Gi"}}}}'

    預期輸出:

    persistentvolumeclaim/csi-quota patched

    執(zhí)行以下命令查看PVC信息。

    kubectl get pvc

    預期輸出:

    NAME        STATUS   VOLUME                CAPACITY   ACCESS MODES   STORAGECLASS           AGE
    csi-quota   Bound    local-f4b129a5-****   3Gi        RWO            alicloud-local-quota   4m30s

    執(zhí)行以下命令查看數(shù)據卷擴容到3 GiB。

    kubectl exec -ti web-quota-0 sh
    df |grep data

    預期輸出:

    Filesystem  1K-blocks  Used Available Use% Mounted on
    /dev/vdd    3145728       4   3145724   1% /data