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

使用OSS動態(tài)存儲卷

OSS存儲卷支持同時被多個Pod掛載,適用于讀文件且對磁盤I/O要求不高的場景,例如讀配置文件、視頻、圖片文件等。除使用靜態(tài)存儲卷外,您也可以創(chuàng)建PVC并配置StorageClass來實現(xiàn)存儲資源的動態(tài)分配,讓系統(tǒng)為您自動預(yù)留持久化存儲卷,無需預(yù)先手動創(chuàng)建和配置存儲資源。您可以通過RRSA鑒權(quán)或者RAM用戶AccessKey鑒權(quán)的任一方式進(jìn)行權(quán)限配置并掛載使用OSS動態(tài)存儲卷。

前提條件

  • 集群需為1.26及以上版本,CSI組件需為v1.31.4-9819c8b-aliyun及以上版本。集群默認(rèn)已安裝CSI組件,如需升級請參見手動升級集群升級csi-plugin和csi-provisioner

    說明

    如果您集群中使用Flexvolume組件,由于Flexvolume已廢棄,請參見遷移Flexvolume至CSI完成遷移后再進(jìn)行掛載。您可以在運維管理 > 組件管理,在存儲頁簽下確認(rèn)存儲組件類型。

  • 已創(chuàng)建Bucket,Bucket與集群需使用同一賬號操作。

    說明

    若Bucket和ECS實例位于相同地域,請選擇私網(wǎng)域名。

  • 已通過kubectl連接集群

注意事項

  • OSS不建議跨賬號使用。

  • 建議在使用OSS的Pod的YAML文件中增加健康檢查配置,當(dāng)容器內(nèi)OSS目錄不可用時,可自動重啟Pod重新掛載OSS。

  • 若您在應(yīng)用模板中配置了securityContext.fsgroup參數(shù),kubelet在存儲卷掛載完成后會執(zhí)行chmodchown操作,導(dǎo)致掛載時間延長。若您已配置securityContext.fsgroup參數(shù),且需要減少掛載時間,請參見OSS存儲卷掛載時間延長

  • 通過ossfs進(jìn)行l(wèi)s等操作時,將發(fā)起HTTP請求到OSS獲取文件的meta信息,如果ls的目標(biāo)目錄下文件較多(例如超過100,000個,該數(shù)值與機器內(nèi)存大小相關(guān)),ossfs將消耗大量系統(tǒng)內(nèi)存,可能導(dǎo)致Pod發(fā)生OOM(Out Of Memory)事件。您可以通過掛載OSS Bucket的子目錄,或?qū)ξ募^多的目錄進(jìn)行目錄分級解決此問題。

  • ossfs適用于并發(fā)讀場景,配置PVC和PV的訪問模式為ReadOnlyMany。若需寫入數(shù)據(jù),建議您通過OSS SDK、ossutil工具等方式實現(xiàn)數(shù)據(jù)讀寫分離,同時配置OSS存儲卷的訪問模式為ReadWriteMany。具體操作,請參見OSS存儲讀寫分離最佳實踐

    重要
    • 在并發(fā)寫場景中,ossfs無法保證數(shù)據(jù)寫入的一致性。

    • 掛載狀態(tài)下,登錄應(yīng)用Pod或宿主機,在掛載路徑下刪除或變更文件,都會直接刪除或變更OSS Bucket中對應(yīng)的源文件。您可以開啟OSS Bucket的版本控制,避免誤刪除重要數(shù)據(jù),請參見版本控制

  • 當(dāng)傳輸?shù)奈募笥?0 MB時,可以將文件切成碎片,分片上傳。分片上傳過程中斷后,如您不再需要這些碎片,可以手動刪除碎片通過生命周期規(guī)則刪除碎片

通過RRSA鑒權(quán)方式掛載

基于適用于服務(wù)賬戶的RAM角色(RAM Roles for Service Accounts,簡稱RRSA)功能,您可以在集群內(nèi)實現(xiàn)PV維度的OpenAPI權(quán)限隔離,從而實現(xiàn)云資源訪問權(quán)限的細(xì)粒度隔離,降低安全風(fēng)險。更多信息,請參見通過RRSA配置ServiceAccount的RAM權(quán)限實現(xiàn)Pod權(quán)限隔離

重要

RRSA鑒權(quán)方式掛載僅支持1.26及以上版本的集群,即ACK托管集群ACK Serverless集群,且集群使用的CSI組件為1.30.4及以上版本。若您在1.30.4之前的版本中使用了RRSA功能,請及時參見【產(chǎn)品變更】CSI ossfs版本升級與掛載流程優(yōu)化增加RAM角色授權(quán)配置。

步驟一:創(chuàng)建RAM角色

如果您在集群中首次使用RRSA功能,需要按照以下步驟操作,如果您已經(jīng)在集群中使用過RRSA鑒權(quán)方式掛載OSS存儲卷,則可以跳過本步驟。

  1. 容器服務(wù)管理控制臺啟用RRSA功能。請參見啟用RRSA功能

  2. 為OSS存儲卷RRSA鑒權(quán)新建RAM角色,即使用RRSA功能扮演的指定角色。

    創(chuàng)建可信實體類型為身份供應(yīng)商的RAM角色,以demo-role-for-rrsa為例。

    1. 使用阿里云賬號登錄RAM控制臺

    2. 在左側(cè)導(dǎo)航欄,選擇身份管理 > 角色,然后在角色頁面,單擊創(chuàng)建角色

    3. 創(chuàng)建角色面板,選擇可信實體類型為身份提供商,然后單擊下一步

    4. 配置角色頁面,配置如下角色信息后,單擊完成

      本示例配置如下。

      配置項

      描述

      角色名稱

      demo-role-for-rrsa。

      備注

      選填有關(guān)該角色的備注信息。

      身份提供商類型

      OIDC

      選擇身份提供商

      ack-rrsa-<cluster_id>。其中,<cluster_id>為您的集群ID。

      限制條件

      • oidc:iss:保持默認(rèn)。

      • oidc:aud:選擇sts.aliyuncs.com

      • oidc:sub:條件判定方式選擇StringEquals,此處需要填入system:serviceaccount:ack-csi-fuse:csi-fuse-ossfs

步驟二:為demo-role-for-rrsa角色授權(quán)

  1. 創(chuàng)建如下OSS訪問的自定義權(quán)限策略。具體操作,請參見創(chuàng)建自定義權(quán)限策略

    以下只讀和讀寫權(quán)限策略請根據(jù)使用需求選擇,并替換mybucket為您實際創(chuàng)建的Bucket名稱。

    • OSS只讀權(quán)限策略

      展開查看OSS只讀權(quán)限策略內(nèi)容

      {
          "Statement": [
              {
                  "Action": [
                      "oss:Get*",
                      "oss:List*"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:mybucket",
                      "acs:oss:*:*:mybucket/*"
                  ],
              }
          ],
          "Version": "1"
      }
    • OSS讀寫權(quán)限

      展開查看OSS讀寫權(quán)限策略內(nèi)容

      {
          "Statement": [
              {
                  "Action": "oss:*",
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:mybucket",
                      "acs:oss:*:*:mybucket/*"
                  ],
              }
          ],
          "Version": "1"
      }
  2. (可選)若您使用KMS托管的指定CMK ID加密OSS Object,還需要為該RAM用戶配置KMS權(quán)限。具體操作,請參見為OSS存儲卷加密

  3. 為demo-role-for-rrsa角色授權(quán)。具體操作,請參見為RAM角色授權(quán)

    說明

    您也可以通過修改RAM角色信任策略的方式使用已有的授權(quán)了OSS權(quán)限的RAM角色。具體操作,請參見使用已存在的RAM角色并授權(quán)

步驟三:創(chuàng)建存儲類

  1. 將以下示例保存為sc-oss-rrsa.yaml,創(chuàng)建配置RRSA權(quán)限認(rèn)證的OSS存儲類。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: sc-oss
    parameters:
      bucket: bucket  # 替換為實際Bucket名稱。
      path: /ack
      url: oss-cn-beijing-internal.aliyuncs.com
      authType: rrsa
      roleName: demo-role-for-rrsa
      otherOpts: "-o allow_other"
      volumeAs: sharepath
    provisioner: ossplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    volumeBindingMode: Immediate

    參數(shù)

    說明

    name

    存儲類名稱。

    bucket

    需要掛載的OSS Bucket。

    path

    表示掛載時相對Bucket根文件的目錄結(jié)構(gòu),默認(rèn)為/(v1.14.8.32-c77e277b-aliyun及之后版本的CSI組件支持)。

    ossfs 1.91版本前,該路徑需在OSS側(cè)預(yù)先創(chuàng)建,詳情請參見ossfs 1.91及以上版本新功能介紹及性能壓測

    url

    掛載OSS的Endpoint,Endpoint以O(shè)SS控制臺Bucket概覽頁為準(zhǔn)。

    • 掛載節(jié)點和Bucket相同地域,或已打通VPC網(wǎng)絡(luò)時,請使用內(nèi)網(wǎng)地址。

    • 掛載節(jié)點和Bucket不同地域時,請使用外網(wǎng)地址。

    不同訪問端口的常見填寫格式如下:

    • 內(nèi)網(wǎng)格式:http://oss-{{regionName}}-internal.aliyuncs.comhttps://oss-{{regionName}}-internal.aliyuncs.com

    • 外網(wǎng)格式:http://oss-{{regionName}}.aliyuncs.comhttps://oss-{{regionName}}.aliyuncs.com

    重要

    vpc100-oss-{{regionName}}.aliyuncs.com的內(nèi)網(wǎng)訪問端口格式已廢棄,請及時切換。

    authType

    配置為rrsa,聲明使用RRSA方式鑒權(quán)。

    roleName

    配置為以上步驟一:創(chuàng)建RAM角色中已創(chuàng)建或修改的RAM角色名稱。若您需要為不同的StorageClass配置不同的權(quán)限,可以創(chuàng)建不同的RAM角色,在StorageClass中配置不同的roleName。

    otherOpts

    您可以為OSS存儲卷輸入定制化參數(shù),格式為-o *** -o ***,例如-o umask=022 -o max_stat_cache_size=0 -o allow_other

    umask:用于更改ossfs讀文件的權(quán)限。例如,設(shè)置umask=022后,ossfs文件的權(quán)限都會變更為755。通過SDK、OSS控制臺等其他方式上傳的文件在ossfs中默認(rèn)權(quán)限均為640。因此,建議您在讀寫分離場景中配置umask權(quán)限。

    max_stat_cache_size:用于指定文件元數(shù)據(jù)的緩存空間,可緩存多少個文件的元數(shù)據(jù)。元數(shù)據(jù)緩存可加快ls操作速度。但若通過OSS、SDK、控制臺、ossutil等方式修改文件,可能會導(dǎo)致元數(shù)據(jù)未被及時更新。

    allow_other:賦予計算機上其他用戶訪問掛載目錄的權(quán)限,但不包含目錄內(nèi)的文件。

    更多可選參數(shù),請參見ossfs掛載選項說明

    provisioner

    定義驅(qū)動類型。取值為ossplugin.csi.alibabacloud.com,表示使用阿里云OSS CSI插件。

    reclaimPolicy

    動態(tài)創(chuàng)建的PV的回收策略。當(dāng)前OSS存儲卷僅支持Retain,即刪除PVC時,PV和OSS Bucket中的數(shù)據(jù)不會被刪除。

    volumeBindingMode

    綁定模式。

    OSS存儲卷無需考慮可用區(qū)間節(jié)點親和,使用默認(rèn)值Immediate即可。

    volumeAs

    存儲卷訪問模式。默認(rèn)為sharepath模式。取值:

    • sharepath:即共享方式掛載,所有存儲卷共享掛載路徑,即數(shù)據(jù)將存儲于<bucket>:<path>/下。

    • subpath:即子目錄方式掛載,創(chuàng)建存儲卷時在掛載路徑下自動新建子目錄,即數(shù)據(jù)將存儲于<bucket>:<path>/<pv-name>/下。

      說明

      subpath模式僅在CSI組件為1.31.3及以上版本時生效,否則均為sharepath模式。

  2. 執(zhí)行以下命令,創(chuàng)建存儲類。

    kubetl apply -f sc-oss-rrsa.yaml

步驟四:創(chuàng)建存儲聲明

  1. 將以下示例保存為pvc-oss.yaml,創(chuàng)建存儲聲明。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-oss
    spec:
      accessModes:
      - ReadOnlyMany
      volumeMode: Filesystem
      resources:
        requests:
          storage: 20Gi
      storageClassName: sc-oss

    參數(shù)

    說明

    name

    PVC的名稱。

    accessModes

    配置訪問模式,支持ReadOnlyMany和ReadWriteMany。

    選擇ReadOnlyMany時,ossfs將以只讀模式掛載OSS Bucket。

    storage

    聲明應(yīng)用的使用量,此處設(shè)置的大小不會限制應(yīng)用可使用的最大容量。

    storageClassName

    使用的存儲類名稱。

  2. 執(zhí)行以下命令,創(chuàng)建存儲聲明。

    kubectl apply -f pvc-oss.yaml
  3. 執(zhí)行以下命令,確認(rèn)PVC已創(chuàng)建且進(jìn)入綁定狀態(tài)。

    kubectl get pvc pvc-oss

    預(yù)期輸出:

    NAME           STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS         VOLUMEATTRIBUTESCLASS   AGE
    pvc-oss        Bound    oss-251d111d-3b0b-4879-81a0-eb5a19xxxxxx   20Gi       ROX            oss-rrsa             <unset>                 4d20h

步驟五:創(chuàng)建應(yīng)用

  1. 將以下示例保存為oss-dynamic.yaml文件,創(chuàng)建應(yīng)用并掛載存儲聲明。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: oss-dynamic
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80
            volumeMounts:
              - name: pvc-oss
                mountPath: "/data"
              - name: pvc-oss
                mountPath: "/data1"
            livenessProbe:
              exec:
                command:
                - sh
                - -c
                - cd /data
              initialDelaySeconds: 30
              periodSeconds: 30
          volumes:
            - name: pvc-oss
              persistentVolumeClaim:
                claimName: pvc-oss
  2. 執(zhí)行以下命令,部署應(yīng)用。

    kubectl apply -f oss-dynamic.yaml
  3. 執(zhí)行以下命令,查詢應(yīng)用副本的運行狀態(tài)。

    kubectl get pod -lapp=nginx -w

    預(yù)期一段時間后,Pod進(jìn)入Running狀態(tài)。

通過RAM用戶AccessKey鑒權(quán)方式掛載

重要
  • 使用該方式掛載時,如果OSS存儲卷引用的AccessKey被撤銷或取消授權(quán),已經(jīng)掛載了存儲卷的應(yīng)用將無權(quán)訪問OSS并報權(quán)限錯誤。您需要修改Secret中的AccessKey信息并重新掛載,此操作將導(dǎo)致應(yīng)用重啟。AccessKey吊銷后ossfs重掛載流程,請參見OSS存儲掛載權(quán)限問題中場景4的解決方案。

  • 如果有定期輪轉(zhuǎn)AccessKey的需求建議您通過RRSA鑒權(quán)方式掛載

您需要首先獲取RAM用戶的AccessKey信息,以使其擁有OSS Bucket的操作權(quán)限。

步驟一:創(chuàng)建具有OSS訪問權(quán)限的RAM用戶并獲取AccessKey

您需要首先獲取RAM用戶的AccessKey信息,以使其擁有OSS Bucket的操作權(quán)限。

  1. 創(chuàng)建RAM用戶,如已創(chuàng)建可跳過。具體操作,請參見創(chuàng)建RAM用戶

  2. 創(chuàng)建如下OSS訪問的自定義權(quán)限策略。具體操作,請參見創(chuàng)建自定義權(quán)限策略

    以下只讀和讀寫權(quán)限策略請根據(jù)使用需求選擇,并替換mybucket為您實際創(chuàng)建的Bucket名稱。

    • OSS只讀權(quán)限策略

      展開查看OSS只讀權(quán)限策略內(nèi)容

      {
          "Statement": [
              {
                  "Action": [
                      "oss:Get*",
                      "oss:List*"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:mybucket",
                      "acs:oss:*:*:mybucket/*"
                  ],
              }
          ],
          "Version": "1"
      }
    • OSS讀寫權(quán)限

      展開查看OSS讀寫權(quán)限策略內(nèi)容

      {
          "Statement": [
              {
                  "Action": "oss:*",
                  "Effect": "Allow",
                  "Resource": [
                      "acs:oss:*:*:mybucket",
                      "acs:oss:*:*:mybucket/*"
                  ],
              }
          ],
          "Version": "1"
      }
  3. (可選)若您使用KMS托管的指定CMK ID加密OSS Object,還需要為該RAM用戶配置KMS權(quán)限。具體操作,請參見為OSS存儲卷加密

  4. 為RAM用戶添加OSS權(quán)限。具體操作,請參見為RAM用戶授權(quán)

  5. 為RAM用戶創(chuàng)建AccessKey。具體操作,請參見獲取AccessKey

步驟二:創(chuàng)建存儲類StorageClass和PVC并掛載

您可以通過控制臺和kubectl兩種方式創(chuàng)建存儲類、存儲聲明并掛載至應(yīng)用中。

控制臺

1、創(chuàng)建存儲類StorageClass

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

  2. 集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇存儲 > 存儲類

  3. 存儲類頁面,單擊創(chuàng)建

  4. 在彈出對話框中配置參數(shù),設(shè)置完成后,單擊創(chuàng)建

    配置項

    說明

    示例值

    名稱

    存儲類的名稱。

    sc-oss

    存儲卷類型

    選擇OSS。

    OSS

    訪問證書

    選擇訪問OSS所需的保密字典,即上一步獲取的AccessKey ID和AccessKey Secret。

    • 選擇已有保密字典:選擇命名空間保密字典

    • 新建保密字典:配置命名空間名稱AccessKey IDAccessKey Secret

    選擇已有保密字典

    Bucket ID

    您要使用的OSS Bucket的名稱。單擊選擇Bucket,在彈出的對話框中選擇所需的Bucket并單擊選擇

    說明

    此處顯示為已配置的AccessKey可獲取到的Bucket列表。

    選擇Bucket

    OSS Path

    表示掛載時相對Bucket根文件的目錄結(jié)構(gòu),默認(rèn)為/(v1.14.8.32-c77e277b-aliyun及之后版本的CSI組件支持)。

    ossfs 1.91版本前,該路徑需在OSS側(cè)預(yù)先創(chuàng)建,詳情請參見ossfs 1.91及以上版本新功能介紹及性能壓測

    /

    存儲卷模式

    存儲卷訪問模式。默認(rèn)為共享目錄模式。取值:

    • 共享目錄:即Sharepath方式掛載,所有存儲卷共享掛載路徑,即數(shù)據(jù)將存儲于<bucket>:<path>/下。

    • 子目錄:即Subpath方式掛載,創(chuàng)建存儲卷時在掛載路徑下自動新建子目錄,即數(shù)據(jù)將存儲于<bucket>:<path>/<pv-name>/下。

      說明

      子目錄模式僅在CSI組件為1.31.3及以上版本時生效,否則均為共享目錄模式。

    共享目錄

    訪問域名

    您可以參考以下情況選擇需要的訪問域名。

    • 如果Bucket和ECS實例位于不同地域(Region),請選擇公網(wǎng)域名

    • 如果Bucket和ECS實例位于相同地域,請選擇私網(wǎng)域名

      說明

      通過私網(wǎng)訪問時,默認(rèn)使用HTTP協(xié)議。若您需要指定網(wǎng)絡(luò)傳輸協(xié)議為HTTPS,可使用kubectl命令行方式創(chuàng)建靜態(tài)PV。

    私網(wǎng)域名

    回收策略

    動態(tài)創(chuàng)建的PV的回收策略。當(dāng)前OSS存儲卷僅支持Retain,即刪除PVC時,PV和OSS Bucket中的數(shù)據(jù)不會被刪除。

    Retain

    可選參數(shù)

    您可以為OSS存儲卷輸入定制化參數(shù),格式為-o *** -o ***,例如-o umask=022 -o max_stat_cache_size=0 -o allow_other

    umask:用于更改ossfs讀文件的權(quán)限。例如,設(shè)置umask=022后,ossfs文件的權(quán)限都會變更為755。通過SDK、OSS控制臺等其他方式上傳的文件在ossfs中默認(rèn)權(quán)限均為640。因此,建議您在讀寫分離場景中配置umask權(quán)限。

    max_stat_cache_size:用于指定文件元數(shù)據(jù)的緩存空間,可緩存多少個文件的元數(shù)據(jù)。元數(shù)據(jù)緩存可加快ls操作速度。但若通過OSS、SDK、控制臺、ossutil等方式修改文件,可能會導(dǎo)致元數(shù)據(jù)未被及時更新。

    allow_other:賦予計算機上其他用戶訪問掛載目錄的權(quán)限,但不包含目錄內(nèi)的文件。

    更多可選參數(shù),請參見ossfs掛載選項說明

    -o umask=022 -o max_stat_cache_size=0 -o allow_other

2、創(chuàng)建存儲聲明

  1. 集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇存儲 > 存儲聲明

  2. 存儲聲明頁面,單擊創(chuàng)建

  3. 在彈出的對話框中配置參數(shù),配置完成后,單擊創(chuàng)建

    配置項

    說明

    示例值

    存儲聲明類型

    選擇OSS。

    OSS

    名稱

    存儲聲明PVC的名稱。

    pvc-oss

    分配模式

    選擇使用存儲類動態(tài)創(chuàng)建

    使用存儲類動態(tài)創(chuàng)建

    已有存儲類

    單擊選擇存儲類,在目標(biāo)存儲卷右側(cè)操作列,單擊選擇,選擇存儲類。

    選擇存儲類

    總量

    聲明應(yīng)用的使用量,此處設(shè)置的大小不會限制應(yīng)用可使用的最大容量。

    20Gi

    訪問模式

    配置訪問模式,支持ReadOnlyMany和ReadWriteMany。

    選擇ReadOnlyMany時,ossfs將以只讀模式掛載OSS Bucket。

    ReadOnlyMany

3、創(chuàng)建應(yīng)用

  1. 集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇工作負(fù)載 > 無狀態(tài)

  2. 無狀態(tài)頁面,單擊使用鏡像創(chuàng)建

  3. 配置創(chuàng)建應(yīng)用的參數(shù)信息,配置完成后,單擊創(chuàng)建

    主要參數(shù)如下,其他參數(shù)保持默認(rèn)即可。更多信息,請參見創(chuàng)建無狀態(tài)工作負(fù)載Deployment

    配置頁

    參數(shù)

    說明

    示例

    應(yīng)用基本信息

    應(yīng)用名稱

    Deployment名稱,自定義輸入。格式要求請參考界面提示。

    test-oss

    副本數(shù)量

    Deployment的副本數(shù)量。

    2

    容器配置

    鏡像名稱

    用于部署應(yīng)用的鏡像地址。

    anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6

    所需資源

    所需的vCPU和內(nèi)存資源。

    0.25 vCPU,0.5 GiB

    數(shù)據(jù)卷

    單擊增加云存儲聲明,然后完成參數(shù)配置。

    • 掛載源:選擇之前創(chuàng)建的PVC。

    • 容器路徑:輸入OSS要掛載到的容器路徑。

    • 掛載源:pvc-oss

    • 容器路徑:/data

    image.png

  4. 查看應(yīng)用部署狀態(tài)。

    1. 無狀態(tài)頁面,單擊應(yīng)用名稱。

    2. 容器組頁簽下,確認(rèn)Pod已正常運行(狀態(tài)為Running)。

kubectl

1、創(chuàng)建存儲類StorageClass

  1. 創(chuàng)建Secret,該Secret選擇的Namespace需要和應(yīng)用所在的Namespace一致。

    替換以下akIdakSecret為上一步獲取的AccessKey ID和AccessKey Secret。

    kubectl create secret generic oss-secret --from-literal='akId=<yourAccessKey ID>' --from-literal='akSecret=<yourAccessKey Secret>'
  2. 將以下示例保存為sc-oss.yaml文件,創(chuàng)建存儲類。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: sc-oss
    parameters:
      bucket: bucket
      path: /ack
      url: oss-cn-beijing.aliyuncs.com
      csi.storage.k8s.io/node-publish-secret-name: oss-secret
      csi.storage.k8s.io/node-publish-secret-namespace: default
      otherOpts: '-o allow_other'
    provisioner: ossplugin.csi.alibabacloud.com
    reclaimPolicy: Retain
    volumeBindingMode: Immediate
    

    參數(shù)

    說明

    name

    存儲類名稱

    bucket

    需要掛載的OSS Bucket。

    path

    表示掛載時相對Bucket根文件的目錄結(jié)構(gòu),默認(rèn)為/(v1.14.8.32-c77e277b-aliyun及之后版本的CSI組件支持)。

    ossfs 1.91版本前,該路徑需在OSS側(cè)預(yù)先創(chuàng)建,詳情請參見ossfs 1.91及以上版本新功能介紹及性能壓測

    url

    掛載OSS的Endpoint,Endpoint以O(shè)SS控制臺Bucket概覽頁為準(zhǔn)。

    • 掛載節(jié)點和Bucket相同地域,或已打通VPC網(wǎng)絡(luò)時,請使用內(nèi)網(wǎng)地址。

    • 掛載節(jié)點和Bucket不同地域時,請使用外網(wǎng)地址。

    不同訪問端口的常見填寫格式如下:

    • 內(nèi)網(wǎng)格式:http://oss-{{regionName}}-internal.aliyuncs.comhttps://oss-{{regionName}}-internal.aliyuncs.com

    • 外網(wǎng)格式:http://oss-{{regionName}}.aliyuncs.comhttps://oss-{{regionName}}.aliyuncs.com

    重要

    vpc100-oss-{{regionName}}.aliyuncs.com的內(nèi)網(wǎng)訪問端口格式已廢棄,請及時切換。

    csi.storage.k8s.io/node-publish-secret-name

    存儲AccessKey信息的Secret名稱。

    csi.storage.k8s.io/node-publish-secret-namespace

    存儲AccessKey信息的Secret所在的命名空間。

    otherOpts

    您可以為OSS存儲卷輸入定制化參數(shù),格式為-o *** -o ***,例如-o umask=022 -o max_stat_cache_size=0 -o allow_other

    umask:用于更改ossfs讀文件的權(quán)限。例如,設(shè)置umask=022后,ossfs文件的權(quán)限都會變更為755。通過SDK、OSS控制臺等其他方式上傳的文件在ossfs中默認(rèn)權(quán)限均為640。因此,建議您在讀寫分離場景中配置umask權(quán)限。

    max_stat_cache_size:用于指定文件元數(shù)據(jù)的緩存空間,可緩存多少個文件的元數(shù)據(jù)。元數(shù)據(jù)緩存可加快ls操作速度。但若通過OSS、SDK、控制臺、ossutil等方式修改文件,可能會導(dǎo)致元數(shù)據(jù)未被及時更新。

    allow_other:賦予計算機上其他用戶訪問掛載目錄的權(quán)限,但不包含目錄內(nèi)的文件。

    更多可選參數(shù),請參見ossfs掛載選項說明

    provisioner

    定義驅(qū)動類型。取值為ossplugin.csi.alibabacloud.com,表示使用阿里云OSS CSI插件。

    reclaimPolicy

    動態(tài)創(chuàng)建的PV的回收策略。當(dāng)前OSS存儲卷僅支持Retain,即刪除PVC時,PV和OSS Bucket中的數(shù)據(jù)不會被刪除。

    volumeBindingMode

    綁定模式。

    OSS存儲卷無需考慮可用區(qū)間節(jié)點親和,使用默認(rèn)值Immediate即可。

    volumeAs

    存儲卷訪問模式。默認(rèn)為sharepath模式。取值:

    • sharepath:即共享方式掛載,所有存儲卷共享掛載路徑,即數(shù)據(jù)將存儲于<bucket>:<path>/下。

    • subpath:即子目錄方式掛載,創(chuàng)建存儲卷時在掛載路徑下自動新建子目錄,即數(shù)據(jù)將存儲于<bucket>:<path>/<pv-name>/下。

      說明

      subpath模式僅在CSI組件為1.31.3及以上版本時生效,否則均為sharepath模式。

2、創(chuàng)建存儲聲明

創(chuàng)建存儲聲明操作同RRSA鑒權(quán)方式操作一致。具體操作,請參見上文步驟四:創(chuàng)建存儲聲明

3、創(chuàng)建應(yīng)用

創(chuàng)建應(yīng)用操作同RRSA鑒權(quán)方式操作一致。具體操作,請參見上文步驟五:創(chuàng)建應(yīng)用

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

  1. 查看部署oss-dynamic應(yīng)用所在的Pod。

    kubectl get pod

    預(yù)期輸出:

    NAME                             READY   STATUS    RESTARTS   AGE
    oss-dynamic-68f4945c46-h****      1/1     Running   0          1h
    oss-dynamic-68f4945c46-4****      1/1     Running   0          1h
  2. 在任意Pod下創(chuàng)建tmpfile文件。以名為oss-dynamic-68f4945c46-h****的Pod為例。

    • 若以ReadWriteMany方式掛載,執(zhí)行以下命令,在/data路徑下創(chuàng)建tmpfile文件。

      kubectl exec oss-dynamic-68f4945c46-h**** -- touch /data/tmpfile
    • 若以ReadOnlyMany方式掛載,可通過OSS控制臺cp(上傳文件)等方式上傳tmpfile文件至OSS Bucket對應(yīng)路徑。

  3. 在兩個Pod掛載路徑下查看文件。

    以名oss-dynamic-68f4945c46-h****的Pod掛載路徑為data,名為oss-dynamic-68f4945c46-4****的掛載路徑為data1為例。

    kubectl exec oss-dynamic-68f4945c46-h**** -- ls /data | grep tmpfile
    kubectl exec oss-dynamic-68f4945c46-4**** -- ls /data1 | grep tmpfile

    預(yù)期輸出:

    tmpfile

    預(yù)期輸出表明,兩個Pod的掛載路徑下均存在此文件,說明兩個Pod共享數(shù)據(jù)。

    說明

    若您無法看到預(yù)期輸出,請確認(rèn)CSI組件版本為v1.20.7及以上版本。更多信息,請參見csi-plugin

  4. 重建Pod。

    kubectl delete pod oss-dynamic-68f4945c46-h****

    預(yù)期輸出:

    pod "oss-dynamic-68f4945c46-h****" deleted
  5. 驗證Pod刪除后,存儲空間里創(chuàng)建的文件是否還存在。

    1. 執(zhí)行以下命令,查看重建的Pod名稱。

      kubectl get pod

      預(yù)期輸出:

      NAME                             READY   STATUS    RESTARTS   AGE
      oss-dynamic-68f4945c46-4****      1/1     Running   0          1h
      oss-dynamic-68f4945c46-z****     1/1     Running   0          40s
    2. 執(zhí)行以下命令,查看/data路徑下的文件。

      kubectl exec oss-dynamic-68f4945c46-z**** -- ls /data | grep tmpfile

      預(yù)期輸出:

      tmpfile

      預(yù)期輸出表明,temfile文件仍然存在,說明OSS的數(shù)據(jù)可持久化保存。

相關(guān)文檔