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

加速Argo任務數據訪問

Fluid支持在Serverless場景下,通過JindoRuntime優化對象存儲的訪問,該訪問支持緩存模式和無緩存模式。本文介紹如何使用緩存模式加速Argo任務數據訪問。

前提條件

  • 已創建一個非ContainerOS操作系統的ACK Pro版集群,且集群版本為1.18及以上。具體操作,請參見創建ACK Pro版集群

    重要

    ack-fluid組件暫不支持在ContainerOS操作系統上使用。

  • 已安裝云原生AI套件并部署ack-fluid組件。

    重要
    • 若您已安裝開源Fluid,請卸載后再部署ack-fluid組件。

    • 由于云原生AI套件中組件ack-ai-pipelineack-workflow存在功能沖突,如果您想使用加速Argo任務數據訪問功能,需要您在部署云原生AI套件時取消勾選Kubeflow Pipelines組件。

  • 已通過kubectl連接Kubernetes集群。具體操作,請參見通過kubectl工具連接集群

  • 已開通阿里云對象存儲(OSS)服務和存儲空間(Bucket)。具體操作,請參見開通OSS服務控制臺創建存儲空間

使用限制

本功能與ACK彈性調度功能沖突,暫不支持同時使用。關于彈性調度功能的更多信息,請參見自定義彈性資源優先級調度

步驟一:上傳測試數據到OSS Bucket

  1. 創建一個2 GB的測試文件,本文以test為例。

  2. 將測試文件上傳到阿里云OSS對應的Bucket。

    您可以通過OSS提供的客戶端工具ossutil上傳數據。具體操作,請參見安裝ossutil

步驟二:創建Dataset和JindoRuntime

當K8s和OSS環境配置完畢后,您只需要耗費幾分鐘即可完成Dataset和JindoRuntime環境的部署。

  1. 使用以下內容,創建secret.yaml文件。

    在創建Dataset之前,您可以創建如下YAML文件,保存OSS的fs.oss.accessKeyIdfs.oss.accessKeySecret

    apiVersion: v1
    kind: Secret
    metadata:
      name: access-key
    stringData:
      fs.oss.accessKeyId: ****
      fs.oss.accessKeySecret: ****
  2. 執行以下命令,部署Secret。

    kubectl create -f secret.yaml
  3. 使用以下內容,創建dataset.yaml文件。

    YAML文件中包含以下兩部分信息:

    • Dataset:描述遠端存儲數據集和UFS的信息。

    • JindoRuntime:啟動一個JindoFS的集群來提供緩存服務。

    apiVersion: data.fluid.io/v1alpha1
    kind: Dataset
    metadata:
      name: serverless-data
    spec:
      mounts:
      - mountPoint: oss://<oss_bucket>/<bucket_dir>
        name: demo
        path: /
        options:
          fs.oss.endpoint: <oss_endpoint>
        encryptOptions:
          - name: fs.oss.accessKeyId
            valueFrom:
              secretKeyRef:
                name: access-key
                key: fs.oss.accessKeyId
          - name: fs.oss.accessKeySecret
            valueFrom:
              secretKeyRef:
                name: access-key
                key: fs.oss.accessKeySecret
    ---
    apiVersion: data.fluid.io/v1alpha1
    kind: JindoRuntime
    metadata:
      name: serverless-data
    spec:
      replicas: 1
      tieredstore:
        levels:
          - mediumtype: MEM
            volumeType: emptyDir
            path: /dev/shm
            quota: 5Gi
            high: "0.95"
            low: "0.7"

    部分參數說明如下:

    參數

    說明

    mountPoint

    表示掛載UFS的路徑,路徑格式為oss://<oss_bucket>/<bucket_dir>。路徑中不需要包含Endpoint信息。例如:oss://mybucket/path/to/dir

    如果您使用單掛載點,可以將path設置為/

    fs.oss.endpoint

    表示OSS Bucket的Endpoint信息,配置您的公網或私網地址。

    配置私網地址可以提高數據訪問性能,但是需要您的K8s集群所在區域和OSS區域相同。例如您的Bucket在杭州Region,則公網地址為oss-cn-hangzhou.aliyuncs.com,私網地址為oss-cn-hangzhou-internal.aliyuncs.com

    fs.oss.accessKeyId

    表示OSS Bucket的AK ID信息,有權限訪問Bucket。

    fs.oss.accessKeySecret

    表示OSS Bucket的AK ID密鑰信息,有權限訪問Bucket。

    replicas

    表示創建JindoRuntime緩存Worker的數量。

    mediumtype

    緩存類型。僅支持HDD(機械硬盤)、SSD(固態硬盤)和MEM(內存)三種類型。

    關于mediumtype的推薦配置,請參見策略二:選擇緩存介質

    volumeType

    緩存介質存儲卷類型。僅支持emptyDir和hostPath兩種類型,默認為hostPath類型。

    • 如果使用內存或本地存儲的系統盤作為緩存介質,推薦選擇emptyDir類型,避免節點上緩存數據殘留,進而影響節點可用性。

    • 如果使用本地存儲的數據盤作為緩存介質,可使用hostPath類型,并配置path指定為宿主機上數據盤的掛載路徑。

    關于volumeType的推薦配置,請參見策略二:選擇緩存介質

    path

    表示緩存路徑,目前只支持單個路徑。

    quota

    表示緩存最大容量。例如100 Gi表示最大可用100 GiB。

    high

    表示存儲容量上限。

    low

    表示存儲容量下限。

    重要

    數據訪問模式默認為只讀模式,如果您想使用讀寫模式,請參考配置數據集訪問模式

  4. 執行以下命令,部署JindoRuntime和Dataset。

    kubectl create -f dataset.yaml
  5. 執行以下命令,查看Dataset的部署情況。

    kubectl get dataset serverless-data

    預期輸出:

    NAME              UFS TOTAL SIZE   CACHED   CACHE CAPACITY   CACHED PERCENTAGE   PHASE   AGE
    serverless-data   1.16GiB          0.00B    5.00GiB          0.0%                Bound   2m8s

    由預期輸出得到,PHASEBound,表示Dataset部署成功。

  6. 執行以下命令,查看JindoRuntime的部署情況。

    kubectl get jindo serverless-data

    預期輸出:

    NAME              MASTER PHASE   WORKER PHASE   FUSE PHASE   AGE
    serverless-data   Ready          Ready          Ready        2m51s

    由預期輸出得到,FUSEReady,表示JindoRuntime部署成功。

(可選)步驟三:數據預熱

預先加熱數據可以提升首次數據的訪問性能。如果您希望在首次訪問數據時得到更好的性能體驗,建議您使用該功能。

  1. 使用以下內容,創建dataload.yaml文件。

    apiVersion: data.fluid.io/v1alpha1
    kind: DataLoad
    metadata:
      name: serverless-data-warmup
    spec:
      dataset:
        name: serverless-data
        namespace: default
      loadMetadata: true
  2. 執行以下命令,部署Dataload。

    kubectl create -f dataload.yaml
  3. 執行以下命令,查看數據預熱的進度。

    kubectl get dataload

    預期輸出:

    NAME                     DATASET           PHASE      AGE     DURATION
    serverless-data-warmup   serverless-data   Complete   2m49s   45s

    由預期輸出得到,數據預熱耗時為45s

  4. 執行以下命令,查看緩存結果。

    kubectl get dataset

    預期輸出:

    NAME              UFS TOTAL SIZE   CACHED    CACHE CAPACITY   CACHED PERCENTAGE   PHASE   AGE
    serverless-data   1.16GiB          1.16GiB   5.00GiB          100.0%              Bound   5m20s

    由預期輸出得到,未進行數據預熱時,CACHED0.0%,數據預熱后,CACHED100.0%

步驟四:創建Argo類型任務訪問OSS

  1. 使用以下內容,創建workflow.yaml文件。

    apiVersion: argoproj.io/v1alpha1
    kind: Workflow
    metadata:
      generateName: serverless-workflow-
    spec:
      entrypoint: serverless-workflow-example
      volumes:
      - name: datadir
        persistentVolumeClaim:
          claimName: serverless-data
    
      templates:
      - name: serverless-workflow-example
        steps:
        - - name: copy
            template: copy-files
        - - name: check
            template: check-files
    
      - name: copy-files
        metadata:
          labels:
            alibabacloud.com/fluid-sidecar-target: eci
            alibabacloud.com/eci: "true"
          annotations:
             k8s.aliyun.com/eci-use-specs: ecs.g7.4xlarge
        container:
          image: debian:buster
          command: [bash, -c]
          args: ["time cp -r /data/ /tmp"]
          volumeMounts:
          - name: datadir
            mountPath: /data
    
      - name: check-files
        metadata:
          labels:
            alibabacloud.com/fluid-sidecar-target: eci
            alibabacloud.com/eci: "true"
          annotations:
             k8s.aliyun.com/eci-use-specs: ecs.g7.4xlarge
        container:
          image: debian:buster
          command: [bash, -c]
          args: ["du -sh /data; md5sum /data/*"]
          volumeMounts:
          - name: datadir
            mountPath: /data
  2. 執行以下命令,創建工作流。

    kubectl create -f workflow.yaml
  3. 執行以下命令,查看啟動日志。

    kubectl logs serverless-workflow-g5knn-3271897614

    預期輸出:

    real    0m1.948s
    user    0m0.000s
    sys     0m0.668s

    由預期輸出得到,文件拷貝時間real0m1.948s。使用無緩存模式加速Argo任務數據訪問,文件拷貝時間為0m24.966s。緩存模式相比無緩存模式,速度提升了約13倍。

步驟五:清理環境

當您不再使用數據訪問功能時,請及時清理環境。具體操作如下:

  1. 執行以下命令,刪除應用容器。

    kubectl delete workflow serverless-workflow-g5knn
  2. 執行以下命令,刪除Dataset。

    kubectl delete dataset serverless-data