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

實現云盤動態預留持久化存儲卷資源

除靜態存儲外,您也可以創建PVC并配置StorageClass來實現存儲資源的動態分配,讓系統為您自動預留持久化存儲卷。您可以更關注集群應用的存儲需求,無需預先手動創建和配置存儲資源,降低底層基礎設施的復雜性。

使用限制

  • 云盤不支持跨可用區使用。

  • 未開啟多重掛載的云盤只能同時被一個Pod掛載。關于多重掛載更多信息,請參見使用NVMe云盤多重掛載及Reservation

  • 云盤類型和ECS類型需要匹配才可以掛載,否則會導致Pod無法啟動。關于云盤類型和ECS類型的匹配關系,請參見實例規格族

    重要

    當您將集群中的ECS實例從按量付費轉換成包年包月時,不能將云盤一起變成包年包月,否則云盤將無法被掛載使用。您可以通過購買SCU的方式降低成本。關于SCU的更多信息,請參見存儲容量單位包SCU概述

前提條件

重要
  • 如果您的集群中包含CentOS 7.9鏡像(或其他運行小于4.9版本Linux內核)的宿主機,并且在集群中使用了XFS文件系統(fstype參數設置為xfs)的存儲卷,請勿將CSI組件升級到v1.24.7及以上的版本。因為舊版內核與新版本組件不兼容。如果誤升級,掛載XFS文件系統的存儲卷的Pod將可能無法啟動,對其他文件系統無影響,請提交工單處理。

  • 如需將CSI組件升級至v1.26.4版本,您需要將CSI provisioner和CSI plugin同時升級至該版本。

使用說明

  • 在應用部署時,通過StorageClass自動創建PV購買云盤。如果您已經購買云盤,推薦使用云盤靜態存儲卷

  • 申請云盤的大小,不能超出云盤的單盤容量范圍。更多信息,請參見存儲規格

  • 當Pod重建時,會重新掛載原云盤。若由于其他限制無法調度到原可用區,則Pod將會處于Pending狀態。

  • 動態創建的云盤為按量付費的云盤,關于云盤計費項信息,請參見塊存儲計費。關于云盤的價格信息,請參見詳細定價

您可以通過控制臺創建StorageClass和PVC并創建應用,也可以通過kubectl完成此操作。

通過控制臺使用云盤動態存儲卷

步驟一:創建StorageClass

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇存儲 > 存儲類

  3. 存儲類頁面,單擊右上角的創建

  4. 創建對話框,配置存儲類StorageClass的相關參數。

    主要配置項說明如下。

    配置項

    說明

    名稱

    StorageClass的名稱。

    存儲卷類型

    可選擇云盤NAS。本示例選擇云盤

    參數

    云盤類型。默認參數為type,其值為cloud_essd,支持設置的參數值如下:

    • 高效云盤cloud_efficiency

    • ESSD AutoPLcloud_auto

    • SSD云盤cloud_ssd

    • ESSD云盤cloud_essd

    • ESSD Entrycloud_essd_entry

    以上參數可任意組合。例如type: cloud_efficiency, cloud_ssd, cloud_essd,此配置方式會支持對指定類型的云盤依次創建,直到創建成功。

    說明

    不同ECS機型支持的云盤類型不同。更多信息,請參見塊存儲FAQ

    單擊添加,可設置自定義參數。支持自定義參數如下:

    • resourceGroupId:可選,定義云盤的資源組。默認為""

    • regionId:可選,自動創建云盤所在的地域,與集群的地域相同。

    • zoneId:可選,自動創建云盤所在的區域。

      • 單可用區集群,與集群所在區域相同。

      • 多可用區集群,zoneId可同時配置多個,例如cn-beijing-a, cn-beijing-b

    • fstype:可選,自動創建云盤所使用的文件系統,取值ext4xfs,默認為ext4

    • mkfsOptions:可選,云盤格式化所用的參數。例如mkfsOptions: "-O project,quota"

    • diskTags:可選,自定義云盤標簽。例如diskTags: "a:b,b:c"。也可以使用diskTags/a: b 的格式指定(v1.30.3起)。

    • encrypted:可選,表示創建的云盤是否加密。默認為false,創建的云盤不加密。

    • performanceLevel:可選,ESSD云盤的性能級別,取值PL0PL1PL2PL3。默認值為PL1。更多信息,請參見容量范圍與性能級別的關系

    • volumeExpandAutoSnapshot:可選,云盤擴容時通過極速快照實現自動數據備份,保證數據安全,默認為closed

      • forced:自動快照創建失敗時放棄云盤擴容。

      • besteffort:自動快照創建失敗時報event warning,繼續進行云盤擴容。

      • closed:不使用自動快照功能。

      如果數據安全性要求高,推薦使用forced方式避免擴容失敗時的數據丟失。

      說明

      僅支持對ESSD云盤進行擴容。擴容正常時,自動快照將自動刪除;擴容失敗時,自動快照將保留24小時。

    • provisionedIops:可選,云盤的預配置性能(IOPS)。

      可能值:0~min{50,000, 1000×容量-基準性能}。

      基準性能=min{1,800+50×容量, 50000}。

      說明

      該參數僅支持ESSD AutoPL云盤。更多信息,請參見ESSD AutoPL云盤規格

    • burstingEnabled:可選,是否開啟Burst(性能突發)。默認為false。

      • true:開啟。

      • false:不開啟。

      說明

      該參數僅支持ESSD AutoPL云盤。更多信息,請參見ESSD AutoPL云盤規格

    • multiAttach:可選,設置為true以開啟多實例掛載,請參見云盤多重掛載功能

    回收策略

    云盤的回收策略,默認為Delete

    • Delete:刪除PVC時,PV和云盤會一起刪除。

    • Retain:刪除PVC時,PV和云盤數據不會被刪除,需要您手動刪除。

    如果數據安全性要求高,推薦使用Retain方式,以免誤刪數據。

    綁定模式

    云盤的綁定模式。默認為Immediate

    • Immediate:表示先創建云盤再調度Pod。

    • WaitForFirstConsumer:延遲綁定,即調度器先調度Pod,并根據Pod的可用區信息創建云盤。

  5. 參數配置完成后,單擊創建

    創建成功后,您可在存儲類列表查看創建的StorageClass。

步驟二:創建PVC

  1. 在集群管理頁左側導航欄,選擇存儲 > 存儲聲明

  2. 存儲聲明頁面,單擊右上角的創建

  3. 創建存儲聲明對話框,配置PVC參數。

    配置項

    說明

    存儲聲明類型

    支持云盤、NAS、OSS三種云存儲類型。本示例選擇云盤。

    名稱

    創建的存儲聲明名稱在命名空間內必須唯一。

    分配模式

    本示例選擇使用存儲類動態創建,即支持通過StorageClass動態創建PV。

    已有存儲類

    選擇已有的StorageClass,用于動態創建PV。

    總量

    所創建存儲卷的容量。

    訪問模式

    僅能使用ReadWriteOnce。更多選項請參見通過kubectl命令行使用云盤動態存儲卷

  4. 單擊創建

    創建成功后,在存儲聲明列表中可看到創建的存儲聲明,并且已綁定相應的存儲卷。

步驟三:創建應用

  1. 在集群管理頁左側導航欄,選擇工作負載 > 有狀態

  2. 有狀態頁面,單擊使用鏡像創建

  3. 配置創建應用的參數信息。

    以下主要為您介紹數據卷的配置。關于其他參數的描述,請參見創建有狀態工作負載StatefulSet

  4. ACK數據卷支持配置本地存儲和云存儲,本示例需要配置云存儲類型。配置了一個云盤類型的數據卷,將該云盤掛載到容器的/tmp路徑下,在該路徑下生成的容器數據會存儲到云盤中。數據卷

  5. 所有的信息都配置完成后,單擊創建

    創建成功后,您就可以正常使用數據卷。

通過kubectl命令行使用云盤動態存儲卷

步驟一:創建StorageClass

在多可用區集群場景下,您可以根據不同的場景通過以下兩種方式創建StorageClass。

使用Topology(延遲綁定)的方式

延遲綁定可以優化ECS和云盤不在一個可用區的問題。下文以部署名為storage-class-csi-wffc.yaml文件為例,創建StorageClass。

  1. 使用以下內容,創建storage-class-csi-wffc.yaml文件。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-disk-wait-for-first-consumer
    provisioner: diskplugin.csi.alibabacloud.com
    parameters:
      type: cloud_auto,cloud_essd,cloud_ssd # 使用該配置,按優先級自適應選擇云盤類型,最終創建的云盤類型受節點實例、所在可用區云盤支持情況等因素影響。
      fstype: ext4
      diskTags: "a:b,b:c"
      encrypted: "false"
      performanceLevel: PL1
      volumeExpandAutoSnapshot: "forced" # 該設置僅在創建的云盤類型為cloud_essd時生效。
      provisionedIops: "40000"
      burstingEnabled: "false"
    volumeBindingMode: WaitForFirstConsumer
    reclaimPolicy: Retain
    allowVolumeExpansion: true

    參數

    說明

    metadata

    name

    StorageClass的名稱。名稱必須以小寫字母開頭,只能包含小寫字母、數字、小數點(.)和短劃線(-)。

    provisioner

    配置為diskplugin.csi.alibabacloud.com。表示使用阿里云云盤Provisioner插件創建StorageClass。

    parameters

    參見上文參數列表

    volumeBindingMode

    云盤的綁定模式。默認為Immediate,支持WaitForFirstConsumer

    • Immediate:表示先創建云盤再創建Pod。

    • WaitForFirstConsumer:延遲綁定,即調度器先調度Pod,并根據Pod的可用區信息創建云盤。

    reclaimPolicy

    云盤的回收策略,默認為Delete,支持Retain

    • Delete:刪除PVC時,PV和云盤會一起刪除。

    • Retain:刪除PVC時,PV和云盤數據不會被刪除,需要您手動刪除。

    如果數據安全性要求高,推薦使用Retain方式以免誤刪數據。

    allowVolumeExpansion

    配置為true時,可以實現云盤的自動擴容。

  2. 執行以下命令,創建StorageClass。

    kubectl apply -f storage-class-wffc.yaml
  3. 查看創建的StorageClass。

    1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

    2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇存儲 > 存儲類

先創建云盤再創建Pod的方式

  1. 使用以下內容,創建storage-class-immediate.yaml文件。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-disk-immediate
    provisioner: diskplugin.csi.alibabacloud.com
    parameters:
      type: cloud_essd,cloud_ssd,cloud_efficiency #使用該配置,按優先級自適應選擇云盤類型,最終創建的云盤類型受節點實例、所在可用區云盤支持情況等因素影響
      regionId: cn-beijing
      zoneId: cn-beijing-b
      encrypted: "false"
    reclaimPolicy: Retain
    allowVolumeExpansion: true
    volumeBindingMode: Immediate

    參數

    說明

    metadata

    name

    StorageClass的名稱。名稱必須以小寫字母開頭,只能包含小寫字母、數字、小數點(.)和短劃線(-)。

    provisioner

    配置為diskplugin.csi.alibabacloud.com。表示使用阿里云云盤Provisioner插件創建StorageClass。

    parameters

    參見上文參數列表

    reclaimPolicy

    云盤的回收策略,默認為Delete,支持Retain

    • Delete:刪除PVC時,PV和云盤會一起刪除。

    • Retain:刪除PVC時,PV和云盤數據不會被刪除,需要您手動刪除。

    如果數據安全性要求高,推薦使用Retain方式,以免誤刪數據。

    allowVolumeExpansion

    配置為true時,可以實現云盤的自動擴容。

    volumeBindingMode

    云盤的綁定模式。默認為Immediate,支持WaitForFirstConsumer

    • Immediate:表示先創建云盤再調度Pod。

    • WaitForFirstConsumer:延遲綁定,即調度器先調度Pod,并根據Pod的可用區信息創建云盤。

  2. 執行以下命令,創建StorageClass。

    kubectl apply -f storage-class-immediate.yaml
  3. 查看創建的StorageClass。

    1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

    2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇存儲 > 存儲類

步驟二:創建PVC

  1. 使用以下內容,創建pvc-disk.yaml文件。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: disk-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      volumeMode: Filesystem
      resources:
        requests:
          storage: 25Gi
      storageClassName: alicloud-disk-wait-for-first-consumer 

    參數

    說明

    name

    PVC的名稱。

    accessModes

    配置訪問模式。

    volumeMode

    可選,掛載云盤的格式,為FilesystemBlock。 默認為文件系統掛載。

    storageClassName

    StorageClass的名稱,用于綁定StorageClass。

    storage

    申請的云盤大小,最小為20 GiB。

    其中,可用的訪問模式取決于StorageClass中的multiAttach參數以及PVC中的volumeMode,如下表:

    參數設置

    可用訪問模式

    multiAttach

    volumeMode

    ReadWriteOnce

    ReadOnlyMany

    ReadWriteMany

    image.png

    任意

    image.png

    image.png

    image.png

    image.png

    Filesystem

    image.png

    image.png

    image.png

    image.png

    Block

    image.png

    image.png

    image.png

    當使用云盤多掛載功能時,請參見使用NVMe云盤多重掛載及Reservation

  2. 執行以下命令,創建PVC。

    kubectl create -f pvc-disk.yaml
  3. 查看創建的PVC。

    在集群管理頁左側導航欄,選擇存儲 > 存儲聲明。在存儲聲明頁面可以看到創建的PVC。

步驟三:創建應用

  1. 使用以下命令,創建secret,用于設置mysql應用的root賬號密碼。請注意,在生產環境中請更換密碼。

    kubectl create secret generic mysql-pass --from-literal=password=mypassword
  2. 使用以下內容,創建mysql.yaml文件。

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: mysql
    spec:
      selector:
        matchLabels:
          app: mysql
      serviceName: mysql
      template:
        metadata:
          labels:
            app: mysql
        spec:
          containers:
          - name: mysql
            image: mysql:8
            env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysql-pass
                  key: password
            ports:
            - containerPort: 3306
              name: mysql
            volumeMounts:
            - name: pvc-disk
              mountPath: /var/lib/mysql
          volumes:
            - name: pvc-disk
              persistentVolumeClaim:
                claimName: disk-pvc

    參數

    說明

    mountPath

    云盤掛載的位置。

    claimName

    PVC的名稱,用于綁定PVC。

  3. 執行以下命令,創建應用并掛載PVC。

    kubectl create -f mysql.yaml
  4. 查看已創建的應用。

    在集群管理頁左側導航欄,選擇工作負載 > 有狀態。您可以在有狀態頁面看到已創建的應用。

驗證動態云盤的持久化存儲

當某個Pod被刪除時,重新部署的Pod將保留之前Pod在存儲卷中寫入的所有數據。您可以通過以下示例驗證動態云盤的持久化存儲特性。

  1. 確認MySQL應用中已掛載云盤:執行以下命令,查看/var/lib/mysql路徑下是否掛載了新的云盤。

    kubectl exec mysql-0 -- df -h /var/lib/mysql

    預期輸出:

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vdd         25G  213M   25G   1% /var/lib/mysql
  2. 在云盤里創建文件。

    1. 執行以下命令,在/var/lib/mysql路徑下創建文件test-persistent

      kubectl exec mysql-0 -- touch /var/lib/mysql/test-persistent
    2. 執行以下命令,確認文件已創建。

      kubectl exec mysql-0 -- ls /var/lib/mysql/test-persistent

      預期輸出:

      /var/lib/mysql/test-persistent
  3. 執行以下命令,刪除名為mysql-0的Pod。

    kubectl delete pod mysql-0

    預期輸出:

    pod "mysql-0" deleted
  4. 驗證刪除Pod后,云盤中創建的文件是否仍然存在。

    1. 執行以下命令,確認重建后的Pod已正常運行。

      kubectl get pod mysql-0

      預期輸出:

      NAME      READY   STATUS    RESTARTS   AGE
      mysql-0   1/1     Running   0          12s
    2. 執行以下命令,查看之前創建的文件。

      kubectl exec mysql-0 -- ls /var/lib/mysql/test-persistent

      預期輸出:

      /var/lib/mysql/test-persistent

      test-persistent文件仍然存在,說明動態云盤的數據可以持久保存。

相關文檔