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

加速Job應(yīng)用數(shù)據(jù)訪問(wèn)

Fluid支持ACK Serverless集群的數(shù)據(jù)訪問(wèn)加速,您可以將Fluid的全部組件,包括Fluid控制器、緩存系統(tǒng)組件和您的應(yīng)用程序全部運(yùn)行于ACK Serverless環(huán)境。本文介紹如何在ACK Serverless集群上加速Job應(yīng)用數(shù)據(jù)訪問(wèn)。

前提條件

使用限制

本功能與ACK Serverless集群的虛擬節(jié)點(diǎn)調(diào)度功能沖突,暫不支持同時(shí)使用。關(guān)于虛擬節(jié)點(diǎn)調(diào)度功能的更多信息,請(qǐng)參見開啟集群虛擬節(jié)點(diǎn)調(diào)度策略

部署Fluid控制面組件

重要

若您已安裝開源Fluid,請(qǐng)卸載后再部署ack-fluid組件。

  1. 部署Fluid控制面組件。

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

    2. 集群列表頁(yè)面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇應(yīng)用 > Helm

    3. Helm頁(yè)面,單擊創(chuàng)建

    4. 基本信息配置向?qū)В渲孟嚓P(guān)參數(shù),然后單擊下一步

      部分參數(shù)說(shuō)明如下:

      參數(shù)

      說(shuō)明

      來(lái)源

      選擇應(yīng)用市場(chǎng)

      Chart

      搜索并選中ack-fluid

      說(shuō)明

      Chart默認(rèn)的發(fā)布名稱為ack-fluid、命名空間為fluid-system。單擊下一步時(shí),若發(fā)布名稱或命名空間與Chart默認(rèn)值不同,則會(huì)彈出請(qǐng)確認(rèn)的提示框,提示您采用Chart默認(rèn)的發(fā)布名稱或命名空間,建議您在提示框中單擊

    5. 參數(shù)配置配置向?qū)В瑔螕?b data-tag="uicontrol" id="uicontrol-ara-bf9-pzt" class="uicontrol">確定。

  2. 執(zhí)行以下命令,查看Fluid是否部署成功。

    kubectl get pod -n fluid-system

    預(yù)期輸出:

    NAME                                  READY   STATUS    RESTARTS   AGE
    dataset-controller-d99998f79-dgkmh    1/1     Running   0          2m48s
    fluid-webhook-55c6d9d497-dmrzb        1/1     Running   0          2m49s

    顯示類似輸出結(jié)果,說(shuō)明Fluid部署成功。組件說(shuō)明如下:

    • Dataset Controller:負(fù)責(zé)維護(hù)Fluid所引入的各個(gè)Dataset CRs(自定義資源)的完整生命周期。

    • Fluid Webhook:負(fù)責(zé)對(duì)用戶需要訪問(wèn)數(shù)據(jù)的應(yīng)用Pod進(jìn)行Sidecar容器注入,無(wú)感知地幫助用戶實(shí)現(xiàn)Serverless場(chǎng)景的數(shù)據(jù)訪問(wèn)功能。

    說(shuō)明

    除了上述描述的兩個(gè)組件外,F(xiàn)luid的控制面仍然包含了一些與管理緩存系統(tǒng)(例如JindoFS、JuiceFS、Alluxio等)生命周期的控制器組件,這些組件在初始部署狀態(tài)下不會(huì)創(chuàng)建,僅當(dāng)用戶指定需要使用某種緩存系統(tǒng)時(shí),與其相關(guān)的緩存系統(tǒng)控制器組件Pod才會(huì)按需擴(kuò)容。

ACK Serverless集群數(shù)據(jù)訪問(wèn)加速示例

步驟一:上傳測(cè)試數(shù)據(jù)到OSS Bucket

  1. 創(chuàng)建一個(gè)2 GB的測(cè)試文件,本文以test為例。

  2. 將測(cè)試文件上傳到阿里云OSS對(duì)應(yīng)的Bucket。

    您可以通過(guò)OSS提供的客戶端工具ossutil上傳數(shù)據(jù)。具體操作,請(qǐng)參見安裝ossutil

步驟二:創(chuàng)建Fluid Dataset和Runtime資源

數(shù)據(jù)準(zhǔn)備和上傳后,即可在Fluid中聲明上述待訪問(wèn)的數(shù)據(jù)。您需要提交一個(gè)Dataset CR和一個(gè)Runtime CR。

  • Dataset CR:描述數(shù)據(jù)在外部存儲(chǔ)系統(tǒng)中的URL位置。

  • Runtime CR:描述緩存系統(tǒng)及其具體配置。

  1. 執(zhí)行以下命令,創(chuàng)建Secret資源,將訪問(wèn)OSS Bucket所需的身份憑證信息存儲(chǔ)于Secret中。

    kubectl create secret generic oss-access-key \
      --from-literal=fs.oss.accessKeyId=<access_key_id> \
      --from-literal=fs.oss.accessKeySecret=<access_key_secret>
  2. 使用以下內(nèi)容,創(chuàng)建dataset.yaml文件,定義如下Dataset CR和Runtime CR。

    本文選擇JindoFS作為緩存系統(tǒng)后端(即對(duì)應(yīng)JindoRuntime)。

    apiVersion: data.fluid.io/v1alpha1
    kind: Dataset
    metadata:
      name: demo-dataset
    spec:
      mounts:
        - mountPoint: oss://<bucket_name>/<bucket_path>
          name: demo
          path: /
          options:
            fs.oss.endpoint: oss-<region>.aliyuncs.com # OSS Bucket訪問(wèn)端點(diǎn)。
          encryptOptions:
            - name: fs.oss.accessKeyId
              valueFrom:
                secretKeyRef:
                  name: oss-access-key
                  key: fs.oss.accessKeyId
            - name: fs.oss.accessKeySecret
              valueFrom:
                secretKeyRef:
                  name: oss-access-key
                  key: fs.oss.accessKeySecret
    ---
    apiVersion: data.fluid.io/v1alpha1
    kind: JindoRuntime
    metadata:
      name: demo-dataset
    spec:
      # 緩存Worker節(jié)點(diǎn)數(shù)量。
      replicas: 2
      worker:
        podMetadata:
          annotations:
            # 禁用虛擬節(jié)點(diǎn)調(diào)度功能。
            alibabacloud.com/burst-resource: eci_only
            # 選擇JindoFS Pod使用的實(shí)例規(guī)格。
            k8s.aliyun.com/eci-use-specs: <eci_instance_spec>
            # 啟用實(shí)例鏡像緩存,加速Pod啟動(dòng)過(guò)程。
            k8s.aliyun.com/eci-image-cache: "true"
      tieredstore:
        levels:
          # 以10 GiB的內(nèi)存作為每個(gè)緩存Worker節(jié)點(diǎn)的緩存介質(zhì)。
          - mediumtype: MEM
            volumeType: emptyDir
            path: /dev/shm
            quota: 10Gi
            high: "0.99"
            low: "0.99"

    部分參數(shù)說(shuō)明如下:

    參數(shù)

    說(shuō)明

    mountPoint

    表示掛載UFS的路徑,路徑格式為oss://<oss_bucket>/<bucket_dir>

    路徑中不需要包含Endpoint信息。如果您使用單掛載點(diǎn),可以將path設(shè)置為/

    options

    設(shè)置了OSS Bucket的訪問(wèn)端點(diǎn),可以配置為經(jīng)典VPC內(nèi)網(wǎng)訪問(wèn)端點(diǎn)或外網(wǎng)訪問(wèn)端點(diǎn)

    fs.oss.endpoint

    表示OSS Bucket的Endpoint信息,配置您的公網(wǎng)或私網(wǎng)地址。

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

    fs.oss.accessKeyId

    表示OSS Bucket的AK ID信息,有權(quán)限訪問(wèn)Bucket。

    fs.oss.accessKeySecret

    表示OSS Bucket的AK ID密鑰信息,有權(quán)限訪問(wèn)Bucket。

    replicas

    表示創(chuàng)建JindoRuntime緩存Worker Pod的數(shù)量,該數(shù)量將會(huì)影響分布式緩存系統(tǒng)的最大緩存可用容量。

    worker.podMetadata.annotations

    可以指定與ECI實(shí)例規(guī)格ECI實(shí)例鏡像緩存相關(guān)的信息。

    tieredstore.levels

    可以通過(guò)quota字段指定每個(gè)緩存Worker Pod可提供的最大緩存容量。

    tieredstore.levels.mediumtype

    緩存類型。僅支持HDD(機(jī)械硬盤)、SSD(固態(tài)硬盤)和MEM(內(nèi)存)三種類型。

    關(guān)于mediumtype的推薦配置,請(qǐng)參見策略二:選擇緩存介質(zhì)

    tieredstore.levels.volumeType

    緩存介質(zhì)存儲(chǔ)卷類型。僅支持emptyDir和hostPath兩種類型,默認(rèn)為hostPath類型。

    • 如果使用內(nèi)存或本地存儲(chǔ)的系統(tǒng)盤作為緩存介質(zhì),推薦選擇emptyDir類型,避免節(jié)點(diǎn)上緩存數(shù)據(jù)殘留,進(jìn)而影響節(jié)點(diǎn)可用性。

    • 如果使用本地存儲(chǔ)的數(shù)據(jù)盤作為緩存介質(zhì),可使用hostPath類型,并配置path指定為宿主機(jī)上數(shù)據(jù)盤的掛載路徑。

    關(guān)于volumeType的推薦配置,請(qǐng)參見策略二:選擇緩存介質(zhì)

    tieredstore.levels.path

    表示緩存路徑,目前只支持單個(gè)路徑。

    tieredstore.levels.quota

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

    tieredstore.levels.high

    表示存儲(chǔ)容量上限。

    tieredstore.levels.low

    表示存儲(chǔ)容量下限。

  3. 執(zhí)行以下命令,創(chuàng)建Dataset和JindoRuntime資源。

    kubectl create -f dataset.yaml
  4. 執(zhí)行以下命令,查看Dataset部署狀態(tài)。

    Dataset CR和JindoRuntime CR創(chuàng)建約1~2分鐘后,緩存系統(tǒng)將部署完畢,之后您可以查看到與緩存系統(tǒng)以及后端存儲(chǔ)系統(tǒng)中數(shù)據(jù)的相關(guān)信息。

    kubectl get dataset demo-dataset

    預(yù)期輸出:

    NAME           UFS TOTAL SIZE   CACHED   CACHE CAPACITY   CACHED PERCENTAGE   PHASE   AGE
    demo-dataset   1.16GiB          0.00B    20.00GiB         0.0%                Bound   2m58s

    輸出結(jié)果中顯示了Fluid Dataset的相關(guān)信息,部分輸出項(xiàng)說(shuō)明如下:

    輸出項(xiàng)

    說(shuō)明

    UFS TOTAL SIZE

    OSS中數(shù)據(jù)集總大小。

    CACHED

    當(dāng)前緩存量。

    CACHE CAPACITY

    緩存系統(tǒng)容量。

    CACHED PERCENTAGE

    數(shù)據(jù)集緩存百分比。

    PHASE

    Dataset狀態(tài)。參數(shù)值為Bound,表示已成功部署。

(可選)步驟三:數(shù)據(jù)緩存預(yù)熱

預(yù)先加熱數(shù)據(jù)可以提升首次數(shù)據(jù)的訪問(wèn)性能。如果您希望在首次訪問(wèn)數(shù)據(jù)時(shí)得到更好的性能體驗(yàn),建議您使用該功能。

  1. 使用以下內(nèi)容,創(chuàng)建dataload.yaml文件。

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

    kubectl create -f dataload.yaml

    預(yù)期輸出:

    NAME          DATASET        PHASE      AGE   DURATION
    data-warmup   demo-dataset   Complete   99s   58s

    由預(yù)期輸出得到,數(shù)據(jù)預(yù)熱耗時(shí)約為58s

步驟四:創(chuàng)建Job應(yīng)用訪問(wèn)數(shù)據(jù)

您可以通過(guò)創(chuàng)建應(yīng)用容器來(lái)使用JindoFS數(shù)據(jù)訪問(wèn)加速服務(wù),或者提交機(jī)器學(xué)習(xí)作業(yè)來(lái)體驗(yàn)相關(guān)功能。本文以創(chuàng)建Job類型應(yīng)用容器訪問(wèn)OSS為例進(jìn)行說(shuō)明。

  1. 使用以下內(nèi)容,創(chuàng)建job.yaml,定義如下Job資源。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: demo-app
    spec:
      template:
        metadata:
          labels:
            alibabacloud.com/fluid-sidecar-target: eci
          annotations:
            # 禁用虛擬節(jié)點(diǎn)調(diào)度功能。
            alibabacloud.com/burst-resource: eci_only
            # 選擇應(yīng)用Pod使用的實(shí)例規(guī)格。
            k8s.aliyun.com/eci-use-specs: ecs.g7.4xlarge
        spec:
          containers:
            - name: demo
              image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
              args:
                - -c
                - du -sh /data && time cp -r /data/ /tmp
              command:
                - /bin/bash
              volumeMounts:
                - mountPath: /data
                  name: demo
          restartPolicy: Never
          volumes:
            - name: demo
              persistentVolumeClaim:
                claimName: demo-dataset
      backoffLimit: 4
  2. 執(zhí)行以下命令,創(chuàng)建Job。

    kubectl create -f job.yaml
  3. 執(zhí)行以下命令,查看Job Pod啟動(dòng)日志。

    kubectl logs demo-app-jwktf -c demo

    預(yù)期輸出:

    1.2G    /data
    
    real    0m0.992s
    user    0m0.004s
    sys     0m0.674s

    由預(yù)期輸出得到,文件拷貝時(shí)間real僅為0m0.992s

步驟五:環(huán)境清理

當(dāng)您不再使用數(shù)據(jù)訪問(wèn)功能時(shí),請(qǐng)及時(shí)清理環(huán)境。

  1. 執(zhí)行以下命令,刪除應(yīng)用容器。

    kubectl delete job demo-app
  2. 執(zhí)行以下命令,刪除Dataset以及綁定的緩存系統(tǒng)組件。

    kubectl delete dataset demo-dataset
    重要

    緩存系統(tǒng)組件的清理可能會(huì)需要約1分鐘時(shí)間,請(qǐng)檢查緩存系統(tǒng)各組件Pod被完整刪除后,再執(zhí)行后續(xù)清理操作。

  3. 執(zhí)行以下命令,回收Fluid控制面組件。

    kubectl get deployments.apps -n fluid-system | awk 'NR>1 {print $1}' | xargs kubectl scale deployments -n fluid-system --replicas=0

    當(dāng)您再次使用數(shù)據(jù)訪問(wèn)功能時(shí),在創(chuàng)建Fluid Dataset和Runtime資源前,您需要先執(zhí)行以下命令,創(chuàng)建Fluid控制面組件。

    kubectl scale -n fluid-system deployment dataset-controller --replicas=1
    kubectl scale -n fluid-system deployment fluid-webhook --replicas=1