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

使用CNFS自動(dòng)擴(kuò)容NAS存儲(chǔ)卷

更新時(shí)間:

通過(guò)定義CNFS中托管的NAS存儲(chǔ)卷的自動(dòng)擴(kuò)容策略,當(dāng)NAS存儲(chǔ)卷的使用率高于某個(gè)閾值時(shí),觸發(fā)NAS存儲(chǔ)卷的自動(dòng)擴(kuò)容。本文介紹如何使用CNFS實(shí)現(xiàn)NAS存儲(chǔ)卷的自動(dòng)擴(kuò)容。

前提條件

  • 已創(chuàng)建Kubernetes托管版集群,且存儲(chǔ)插件選擇為CSI。

    • 若需要新建集群,選擇CSI存儲(chǔ)插件時(shí),請(qǐng)同時(shí)選中創(chuàng)建默認(rèn)NAS文件系統(tǒng)和CNFS容器網(wǎng)絡(luò)文件系統(tǒng)動(dòng)態(tài)存儲(chǔ)類型并默認(rèn)開(kāi)啟NAS回收站特性,支持?jǐn)?shù)據(jù)快速恢復(fù)。

    • 若已創(chuàng)建集群,但未選中開(kāi)啟默認(rèn)創(chuàng)建的功能,請(qǐng)使用CNFS托管NAS文件系統(tǒng)。具體操作,請(qǐng)參見(jiàn)通過(guò)CNFS方式使用NAS文件系統(tǒng)

  • csi-plugin和csi-provisioner組件版本不低于v1.20.5-ff6490f-aliyun。關(guān)于升級(jí)csi-plugin和csi-provisioner組件的操作,請(qǐng)參見(jiàn)升級(jí)csi-plugin和csi-provisioner

  • csi-plugin默認(rèn)的dnsPolicyClusterFirst。若要使用CNFS自動(dòng)擴(kuò)容NAS存儲(chǔ)卷,需要手動(dòng)將ClusterFirst改為ClusterFirstWithHostNet

  • storage-operator組件版本不低于v1.18.8.56-2aa33ba-aliyun。更多信息,請(qǐng)參見(jiàn)storage-operator

  • 已通過(guò)Kubectl工具連接集群

步驟一:開(kāi)啟自動(dòng)擴(kuò)容

storage-operator組件中默認(rèn)的storage-auto-expander負(fù)責(zé)自動(dòng)擴(kuò)容存儲(chǔ)資源。您需要執(zhí)行以下命令,修改storage-operator的ConfigMap文件,以開(kāi)啟自動(dòng)擴(kuò)容功能。

kubectl patch configmap/storage-operator \
  -n kube-system \
  --type merge \
  -p '{"data":{"storage-auto-expander":"{\"imageRep\":\"acs/storage-auto-expander\",\"imageTag\":\"\",\"install\":\"true\",\"template\":\"/acs/templates/storage-auto-expander/install.yaml\",\"type\":\"deployment\"}"}}'

步驟二:配置NAS自動(dòng)擴(kuò)容策略

  1. 查看CNFS對(duì)象的狀態(tài),需要確保CNFS對(duì)象的狀態(tài)為Available

    1. 執(zhí)行以下命令查看CNFS對(duì)象。

      kubectl get cnfs

      預(yù)期輸出:

      NAME                                      AGE
      default-cnfs-nas-837d6ea-20210819155623   14d
    2. 執(zhí)行以下命令查看CNFS對(duì)象的狀態(tài)。

      kubectl get cnfs <上一步查詢到的CNFS對(duì)象> -o yaml | grep Available

      預(yù)期輸出:

      status: Available
  2. 使用以下YAML模板創(chuàng)建NAS擴(kuò)容策略。

    cat << EOF | kubectl apply -f -
    apiVersion: storage.alibabacloud.com/v1alpha1
    kind: StorageAutoScalerPolicy
    metadata:
      name: hybrid-expand-policy
    spec:
      pvcSelector:
        matchLabels:
          app: nginx      # 需要與PVC及Deployment下labels的配置相同,本示例均為app: nginx。
      namespaces:
        - default
        - nginx
      conditions:
        - name: condition1
          key: volume-capacity-used-percentage
          operator: Gt
          values:
            - "80"
      actions:
        - name: action1
          type: volume-expand
          params:
            scale: 100%
            limits: 500Gi
    EOF

    參數(shù)

    說(shuō)明

    pvcSelector

    選擇目標(biāo)PVC,通過(guò)Label-Selector方式實(shí)現(xiàn)擴(kuò)容策略與PVC之間的匹配。本示例為nginx

    namespaces

    表示目標(biāo)PVC所在的命名空間,多個(gè)命名空間為或邏輯。若不配置,默認(rèn)為default。本示例為defaultnginx

    conditions

    表示觸發(fā)規(guī)則的條件,多個(gè)condition為與邏輯。每個(gè)condition包含以下參數(shù):

    • key:定義一個(gè)Metric的類型。

    • volume-capacity-used-percentage:表示容量使用百分比。

    • operator:定義規(guī)則,包含Gt(大于)、Lt(小于)、Eq(等于)或Ne(不等于),不限制英文字母大小寫。

    • values:規(guī)則的具體數(shù)值。

    本示例表示當(dāng)PVC容量的使用率高于80%時(shí)會(huì)觸發(fā)actions

    actions

    表示滿足上述conditions時(shí)執(zhí)行的操作,可以是多個(gè)操作。包含以下參數(shù):

    • type:表示行為方式,目前只支持?jǐn)U容。

    • scale:表示擴(kuò)容的大小,單位為GiB,或可使用百分比。

    • limits:表示PVC在此action中的最大限制。

    actions中有多個(gè)action時(shí),則從首個(gè)action開(kāi)始匹配,執(zhí)行首個(gè)滿足條件的action,其余跳過(guò)。

    本示例的action1表示,當(dāng)滿足擴(kuò)容條件時(shí)NAS存儲(chǔ)卷容量以當(dāng)前容量的100%為單位擴(kuò)容,最大擴(kuò)容到500 GiB。

  3. 使用以下YAML模板創(chuàng)建PVC及Deployment。

    重要

    通過(guò)匹配擴(kuò)容策略與對(duì)應(yīng)PVC及Deployment之間的標(biāo)簽,將擴(kuò)容策略應(yīng)用到PVC及Deployment中。例如,本示例擴(kuò)容策略中pvcSelector.matchLabels的值為app: nginx,對(duì)應(yīng)PVC及Deployment中labels的值為app: nginx

    cat << EOF | kubectl apply -f -
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: cnfs-nas-pvc
      labels:
        app: nginx   # 需要與擴(kuò)容策略YAML模板下pvcSelector.matchLabels的配置相同,本示例均為app: nginx。
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alibabacloud-cnfs-nas
      resources:
        requests:
          storage: 50Gi
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cnfs-nas-deployment
      labels:
        app: nginx
    spec:
      selector:
        matchLabels:
          app: nginx   # 需要與擴(kuò)容策略YAML模板下pvcSelector.matchLabels的配置相同,本示例均為app: nginx。
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            volumeMounts:
            - mountPath: "/data"
              name: cnfs-nas-pvc
          volumes:
          - name: cnfs-nas-pvc
            persistentVolumeClaim:
              claimName: cnfs-nas-pvc
    EOF

步驟三:驗(yàn)證NAS存儲(chǔ)卷的自動(dòng)擴(kuò)容

  1. 執(zhí)行以下命令查看命名空間default下的所有Pod。

    kubectl get pod

    預(yù)期輸出:

    NAME                                                            READY   STATUS    RESTARTS   AGE
    cnfs-nas-deployment-56dbcc7fb7-wh79z   1/1      Running            0          20m
  2. 執(zhí)行以下命令進(jìn)入應(yīng)用Pod中。

    kubectl exec cnfs-nas-deployment-56dbcc7fb7-wh79z -ti sh
  3. 執(zhí)行以下命令在NAS存儲(chǔ)卷掛載目錄寫入50 GiB的測(cè)試數(shù)據(jù)。

    cd /data
    dd if=<數(shù)據(jù)路徑> of=<掛載路徑>
  4. 執(zhí)行以下命令查看觸發(fā)擴(kuò)容的事件。

    kubectl get events

    預(yù)期輸出:

    default    0s    Warning   NotEnoughDiskSpace           persistentvolumeclaim/cnfs-nas-pvc              Pvc cnfs-nas-pvc is not enough disk space, namespace: default, totalSize:50Gi, usedSize:49Gi, usedPercentage:98.00%, threshold:85.00%
    default    1s    Warning   StartExpand                  persistentvolumeclaim/cnfs-nas-pvc              Start to expand of pvc cnfs-nas-pvc from 50Gi to 100Gi, usedCapacityPercentage:98%, freeSize:1024MB.
    default    0s    Normal    Resizing                     persistentvolumeclaim/cnfs-nas-pvc              External resizer is resizing volume nas-1acba306-e626-46f3-8441-110c10a6****
    default    0s    Warning   ExternalExpanding            persistentvolumeclaim/cnfs-nas-pvc              Ignoring the PVC: didn't find a plugin capable of expanding the volume; waiting for an external controller to process this PVC.
    default    0s    Normal    FileSystemResizeRequired     persistentvolumeclaim/cnfs-nas-pvc              Require file system resize of volume on node
    default    0s    Normal    FileSystemResizeSuccessful   pod/cnfs-nas-deployment-56dbcc7fb7-wh79z        MountVolume.NodeExpandVolume succeeded for volume "nas-1acba306-e626-46f3-8441-110c10a6****"

    從以上預(yù)期輸出可得,當(dāng)前NAS存儲(chǔ)卷的容量使用量已超過(guò)80%,觸發(fā)擴(kuò)容,NAS存儲(chǔ)卷容量將從50 GiB擴(kuò)容到100 GiB。

  5. 在CSI Nodes監(jiān)控大盤查看CNFS監(jiān)控信息。

    1. 登錄容器服務(wù)管理控制臺(tái),在左側(cè)導(dǎo)航欄選擇集群

    2. 集群列表頁(yè)面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇運(yùn)維管理 > Prometheus 監(jiān)控

    3. Prometheus監(jiān)控頁(yè)面,單擊存儲(chǔ)監(jiān)控頁(yè)簽,然后單擊CSI存儲(chǔ)組件監(jiān)控-節(jié)點(diǎn)維度頁(yè)簽。

    4. CSI存儲(chǔ)組件監(jiān)控-節(jié)點(diǎn)維度頁(yè)面,選擇NAS存儲(chǔ)卷所在的StorageTypeNamespace及PVC名稱后,在Total Capacity區(qū)域可以查看NAS存儲(chǔ)卷當(dāng)前的容量。

      本示例StorageType選擇為nasNamespace選擇為defaultPVCcnfs-nas-pvcNAS存儲(chǔ)卷容量

      從上圖可見(jiàn),在16:55:30觸發(fā)擴(kuò)容,且擴(kuò)容后容量為100 GiB。