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

動態掛載NAS存儲卷

對于共享數據,磁盤I/O要求較高的應用場景,可以使用NAS作為持久化存儲卷。本文介紹如何為應用動態掛載NAS存儲卷,并驗證NAS的共享存儲和持久化存儲。

背景信息

NAS是一種可共享訪問、彈性擴展、高可靠以及高性能的分布式文件系統,適用于共享數據,以及I/O要求較高的應用場景。更多信息,請參見存儲概述

說明

ACS支持靜態和動態掛載NAS存儲卷。本文介紹動態掛載方式,靜態掛載方式請參見靜態掛載NAS存儲卷

前提條件

ACS集群中已安裝最新版本的managed-csiprovisioner組件。

說明

您可以在ACS集群管理頁的左側導航欄選擇運維管理 > 組件管理,在存儲頁簽下查看managed-csiprovisioner組件的安裝情況。

使用限制

  • 不支持掛載SMB協議的NAS文件系統。

  • NAS文件系統只能掛載到相同VPCPod上,不支持跨VPC掛載。

  • 僅支持通過NFSv3協議掛載NAS文件系統。

注意事項

  • NAS為共享存儲,一個NAS存儲卷可以掛載到多個Pod上。此時多個Pod可能同時修改相同數據,需要應用自行實現數據的同步。

  • 掛載NAS時,請勿在應用的YAML中配置securityContext.fsgroup,這可能會造成掛載失敗。

    說明

    NAS文件系統的/目錄不支持修改權限、屬主和屬組。

  • 掛載NAS后,請勿刪除掛載點,否則會造成操作系統無響應。

動態掛載NAS存儲卷

步驟一:創建StorageClass

  1. 連接集群。具體操作,請參見獲取集群KubeConfig并通過kubectl工具連接集群CloudShell上通過kubectl管理Kubernetes集群

  2. 參考參數說明表修改以下YAML內容,并保存為nas-sc.yaml。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-nas-fs
    mountOptions:
    - nolock,tcp,noresvport
    - vers=3
    parameters:
      volumeAs: filesystem
      fileSystemType: standard
      storageType: Performance
      regionId: cn-shanghai
      zoneId: cn-shanghai-e
      vpcId: "vpc-2ze2fxn6popm8c2mzm****"
      vSwitchId: "vsw-2zwdg25a2b4y5juy****"
      accessGroupName: DEFAULT_VPC_GROUP_NAME
      deleteVolume: "false"
    provisioner: nasplugin.csi.alibabacloud.com
    reclaimPolicy: Retain

    相關參數說明如下:

    重要

    不同類型和存儲規格的NAS文件系統支持的地域、可用區不同。請根據業務的存儲需求、ACS集群所屬地域和ACS集群中Pod使用的VPC和交換機信息等確定您要在哪個地域、可用區,以及哪個VPC、交換機下創建什么類型的NAS文件系統和掛載點。相關參考如下:

    • 各類型NAS文件系統的存儲規格、性能、計費、支持的地域和可用區等信息,請參見通用型NAS極速型NAS

    • 通用型NAS與極速型NAS在掛載連通性、文件系統數量及協議類型等方面存在相應約束條件。更多信息,請參見使用限制

    • 您可以執行kubectl get cm -n kube-system acs-profile -o yaml命令查看acs-profileYAML,在vpcIdvSwitchIds中獲取Pod使用的VPC ID和交換機ID。

    參數

    說明

    volumeAs

    目前僅支持filesystem,表示會自動創建一個NAS文件系統,即一個NAS存儲卷對應一個NAS文件系統。

    fileSystemType

    NAS文件系統的類型。

    • standard(默認):通用型NAS,更多信息,請參見通用型NAS

    • extreme:極速型NAS,更多信息,請參見極速型NAS

    storageType

    NAS文件系統的存儲規格。

    • 對于通用型NAS,可選值如下:

      • Performance(默認):性能型

      • Capacity:容量型

    • 對于極速型NAS,可選值如下:

      • standard(默認):標準型

      • advanced:高級型

    regionId

    NAS文件系統所屬地域。需與ACS集群所屬地域保持一致。

    zoneId

    NAS文件系統所屬可用區。請根據ACS集群中Pod所使用的交換機,選擇對應的可用區。

    vpcIdvSwitchId

    NAS文件系統掛載點所屬的VPC ID和交換機ID。需配置為ACS集群中Pod使用的VPC ID和交換機ID。

    accessGroupName

    NAS文件系統掛載點的權限組。默認為DEFAULT_VPC_GROUP_NAME

    provisioner

    驅動類型。必須配置為nasplugin.csi.alibabacloud.com,表示使用阿里云NAS CSI插件。

    reclaimPolicy

    PV的回收策略。目前僅支持Retain,表示刪除PV時,會保留對應的NAS文件系統和掛載點。

  3. 創建StorageClass。

    kubectl create -f nas-sc.yaml
  4. 查看StorageClass。

    kubectl get sc

    預期返回:

    NAME                             PROVISIONER                       RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    alicloud-nas-fs                  nasplugin.csi.alibabacloud.com    Retain          Immediate              false                  13m
    ......

步驟二:創建PVC

  1. 將以下YAML內容保存為nas-pvc-fs.yaml。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nas-pvc-fs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: alicloud-nas-fs
      resources:
        requests:
          storage: 20Gi

    相關參數說明如下:

    參數

    說明

    accessModes

    訪問模式。

    storage

    分配給Pod的存儲容量,即要創建的NAS存儲卷容量。

    說明

    由于極速型NAS100 GiB的最小容量限制,如果StorageClass中定義的NAS文件系統類型為極速型NAS,此處storage的值必須≥100 GiB,否則無法創建對應的PV。

    storageClassName

    要綁定的StorageClass名稱。

  2. 創建PVC。

    kubectl create -f nas-pvc-fs.yaml
  3. 查看PVC。

    kubectl get pvc

    返回示例如下,PV已關聯自動創建的PV。您可以前往NAS文件系統控制臺查看對應的NAS文件系統。

    NAME         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      VOLUMEATTRIBUTESCLASS  AGE
    nas-pvc-fs   Bound    nas-04a730ba-010d-4fb1-9043-476d8c38****   20Gi       RWX            alicloud-nas-fs   <unset>                14s

步驟三:創建應用并掛載NAS

  1. 使用以下YAML內容,創建nas-test-fs.yaml文件。

    以下YAML示例可以創建包含2PodDeployment,2Pod均通過名為nas-pvc-fsPVC申請存儲資源,掛載路徑均為/data

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nas-test
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-nas
                mountPath: /data
          volumes:
            - name: pvc-nas
              persistentVolumeClaim:
                claimName: nas-pvc-fs
  2. 創建Deployment并掛載NAS。

    kubectl create -f nas-test-fs.yaml
  3. 查看DeploymentPod的部署情況。

    kubectl get pod | grep nas-test

    返回示例如下,已創建2Pod。

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  4. 查看掛載路徑。

    命令示例如下,預期會返回NAS文件系統掛載目錄下的數據。默認為空。

    kubectl exec nas-test-****-***a -- ls /data

驗證NAS的共享存儲和持久化存儲

按照上文示例創建的Deployment中含有2Pod,2Pod掛載了同一NAS文件系統。您可以通過以下方式進行驗證:

  • 在一個Pod中創建文件,然后另一個Pod中查看文件,以此來驗證共享存儲。

  • 重建Deployment,然后在新創建的Pod中查看文件系統中的數據是否存在,以此來驗證持久化存儲。

  1. 查看Pod信息。

    kubectl get pod | grep nas-test

    返回示例如下:

    nas-test-****-***a   1/1     Running   0          40s
    nas-test-****-***b   1/1     Running   0          40s
  2. 驗證共享存儲。

    1. 在一個Pod中創建文件。

      以名為nas-test-****-***aPod作為示例:

      kubectl exec nas-test-****-***a -- touch /data/test.txt
    2. 在另一個Pod中查看文件。

      以名為nas-test-****-***bPod作為示例:

      kubectl exec nas-test-****-***b -- ls /data

      預期返回如下,可以看到已共享新建的文件test.txt

      test.txt
  3. 驗證持久化存儲。

    1. 重建Deployment。

      kubectl rollout restart deploy nas-test
    2. 查看Pod,等待新Pod創建成功。

      kubectl get pod | grep nas-test

      返回示例如下:

      nas-test-****-***c   1/1     Running   0          67s
      nas-test-****-***d   1/1     Running   0          49s
    3. 在新Pod中查看文件系統中的數據是否存在。

      以名為nas-test-c***Pod作為示例:

      kubectl exec nas-test-****-***c -- ls /data

      預期返回如下,可以看到NAS文件系統中的數據依然存在,在新Pod的掛載目錄下可以重新獲取。

      test.txt