共用方式為


替代:雲端內嵌邊緣磁碟區的 OneLake 設定

本文說明適用於 OneLake Lakehouses 的雲端內嵌邊緣磁碟區 (使用本機清除進行 Blob 上傳) 替代設定。

設定適用於延伸模組身分識別的 OneLake

將延伸模組身分識別新增至 OneLake 工作區

  1. 瀏覽至您的 OneLake 入口網站;例如,https://youraccount.powerbi.com
  2. 建立或瀏覽至您的工作區。 此螢幕擷取畫面顯示入口網站中的工作區功能區。
  3. 選取 [管理存取權]此螢幕擷取畫面顯示入口網站中的 [管理存取權] 畫面。
  4. 選取 [新增人員或群組]
  5. 輸入安裝由 Azure Arc 啟用的 Azure 容器儲存體時所提供的延伸模組名稱。 此名稱在您的租用戶中必須為唯一。 此螢幕擷取畫面顯示新增延伸模組名稱畫面。
  6. 將權限的下拉清單從 [檢視人員] 變更為 [參與者]此螢幕擷取畫面顯示設定參與者畫面。
  7. 選取 [新增]。

建立雲端內嵌永續性磁碟區宣告 (PVC)

  1. 建立名為 cloudIngestPVC.yaml 的檔案,包含以下內容。 以永續性磁碟區宣告名稱修改 metadata.name 值。 下一個步驟中 deploymentExample.yaml 的最後一行會參考此名稱。 您還必須使用預期的取用 Pod 來更新 metadata.namespace 值。 如果您沒有預期的取用 Pod,則 metadata.namespace 值為 default

    注意

    請只使用小寫字母和數字。 如需詳細資訊,請參閱 Kubernetes 物件命名文件

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      ### Create a nane for your PVC ###
      name: <create-a-pvc-name-here>
      ### Use a namespace that matches your intended consuming pod, or "default" ###
      namespace: <intended-consuming-pod-or-default-here>
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 2Gi
      storageClassName: cloud-backed-sc
    
  2. 若要套用 cloudIngestPVC.yaml,請執行:

    kubectl apply -f "cloudIngestPVC.yaml"
    

將子磁碟區附加至邊緣磁碟區

您可以使用下列流程,使用延伸模組身分識別來建立子磁碟區以連線到您的 OneLake LakeHouse。

  1. 使用下列命令取得邊緣磁碟區的名稱:

    kubectl get edgevolumes
    
  2. 建立名為 edgeSubvolume.yaml 的檔案,並複製/貼上下列內容。 下列變數必須以您的資訊更新:

    注意

    請只使用小寫字母和數字。 如需詳細資訊,請參閱 Kubernetes 物件命名文件

    • metadata.name:為您的子磁碟區建立名稱。
    • spec.edgevolume:這個名稱是使用 kubectl get edgevolumes 從上一個步驟擷取的。
    • spec.path:在掛接路徑下建立您自己的子目錄名稱。 下列範例已經包含範例名稱 (exampleSubDir)。 如果您變更此路徑名稱,則 deploymentExample.yaml 中的第 33 行必須更新為新的路徑名稱。 如果您選擇重新命名路徑,請勿使用前導斜線。
    • spec.container:One Lake Data Lake Lakehouse 的詳細資料 (例如,<WORKSPACE>/<DATA_LAKE>.Datalake/Files)。
    • spec.storageaccountendpoint:您的儲存體帳戶端點是 Power BI 網頁連結的前置詞。 例如,如果您的 OneLake 頁面是 https://contoso-motors.powerbi.com/,則您的端點為 https://contoso-motors.dfs.fabric.microsoft.com
    apiVersion: "arccontainerstorage.azure.net/v1"
    kind: EdgeSubvolume
    metadata:
      name: <create-a-subvolume-name-here>
    spec:
      edgevolume: <your-edge-volume-name-here>
      path: exampleSubDir # If you change this path, line 33 in deploymentExample.yaml must to be updated. Don't use a preceding slash.
      auth:
        authType: MANAGED_IDENTITY
      storageaccountendpoint: "https://<Your AZ Site>.dfs.fabric.microsoft.com/" # Your AZ site is the root of your Power BI OneLake interface URI, such as https://contoso-motors.powerbi.com
      container: "<WORKSPACE>/<DATA_LAKE>.Datalake/Files" # Details of your One Lake Data Lake Lakehouse
      ingestPolicy: edgeingestpolicy-default # Optional: See the following instructions if you want to update the ingestPolicy with your own configuration
    
  3. 若要套用 edgeSubvolume.yaml,請執行:

    kubectl apply -f "edgeSubvolume.yaml"
    

選用:從預設修改 ingestPolicy

  1. 如果您想要從預設的 edgeingestpolicy-default 變更 ingestPolicy,請建立名為 myedgeingest-policy.yaml 的檔案,其中包含下列內容。 下列變數必須使用您的喜好設定來更新:

    注意

    請只使用小寫字母和數字。 如需詳細資訊,請參閱 Kubernetes 物件命名文件

    • metadata.name:為您的 ingestPolicy 建立名稱。 您必須在 edgeSubvolume.yamlspec.ingestPolicy 區段中更新和參考此名稱。
    • spec.ingest.order:上傳已變更檔案的順序。 這是最佳做法,而非保證 (預設為 oldest-first)。 順序的選項為:oldest-firstnewest-first
    • spec.ingest.minDelaySec:已變更檔案可內嵌之前的秒數下限 (預設值為 60)。 這個數字的範圍可以介於 0 到 31536000 之間。
    • spec.eviction.order:如何收回檔案 (預設為 unordered)。 收回順序的選項為:unorderednever
    • spec.eviction.minDelaySec:清除檔案可收回之前的秒數 (預設值為 300)。 這個數字的範圍可以介於 0 到 31536000 之間。
    apiVersion: arccontainerstorage.azure.net/v1
    kind: EdgeIngestPolicy
    metadata:
      name: <create-a-policy-name-here> # This will need to be updated and referenced in the spec.ingestPolicy section of the edgeSubvolume.yaml
    spec:
      ingest:
        order: <your-ingest-order>
        minDelaySec: <your-min-delay-sec>
      eviction:
        order: <your-eviction-order>
        minDelaySec: <your-min-delay-sec>
    
  2. 若要套用 myedgeingest-policy.yaml,請執行:

    kubectl apply -f "myedgeingest-policy.yaml"
    

連結您的應用程式 (Kubernetes 原生應用程式)

  1. 若要針對永續性磁碟區宣告 (PVC) 設定一般單一 Pod (Kubernetes 原生應用程式),請建立名為 deploymentExample.yaml 的檔案,其中包含下列內容。 以您自己的值取代 containers.namevolumes.persistentVolumeClaim.claimName 的值。 如果您從 edgeSubvolume.yaml 更新路徑名稱,則必須使用新的路徑名稱來更新第 33 行上的 exampleSubDir

    注意

    請只使用小寫字母和數字。 如需詳細資訊,請參閱 Kubernetes 物件命名文件

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cloudingestedgevol-deployment ### This must be unique for each deployment you choose to create.
    spec:
      replicas: 2
      selector:
        matchLabels:
          name: wyvern-testclientdeployment
      template:
        metadata:
          name: wyvern-testclientdeployment
          labels:
            name: wyvern-testclientdeployment
        spec:
          affinity:
            podAntiAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
              - labelSelector:
                  matchExpressions:
                  - key: app
                    operator: In
                    values:
                    - wyvern-testclientdeployment
                topologyKey: kubernetes.io/hostname
          containers:
            ### Specify the container in which to launch the busy box. ###
            - name: <create-a-container-name-here>
              image: mcr.microsoft.com/azure-cli:2.57.0@sha256:c7c8a97f2dec87539983f9ded34cd40397986dcbed23ddbb5964a18edae9cd09
              command:
                - "/bin/sh"
                - "-c"
                - "dd if=/dev/urandom of=/data/exampleSubDir/esaingesttestfile count=16 bs=1M && while true; do ls /data &>/dev/null || break; sleep 1; done"
              volumeMounts:
                ### This name must match the following volumes.name attribute ###
                - name: wyvern-volume
                  ### This mountPath is where the PVC is attached to the pod's filesystem ###
                  mountPath: "/data"
          volumes:
             ### User-defined name that's used to link the volumeMounts. This name must match volumeMounts.name as previously specified. ###
            - name: wyvern-volume
              persistentVolumeClaim:
                ### This claimName must refer to your PVC metadata.name
                claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
    
  2. 若要套用 deploymentExample.yaml,請執行:

    kubectl apply -f "deploymentExample.yaml"
    
  3. 使用 kubectl get pods 來尋找 Pod 的名稱。 複製此名稱,因為您在下一步驟中需要用到此名稱。

    注意

    由於 deploymentExample.yaml 中的 spec.replicas 已指定為 2,因此使用 kubectl get pods 會出現兩個 Pod。 您可以選擇任一 Pod 名稱以供下一個步驟使用。

  4. 執行下列命令,並使用您在上一步中複製的值來取代 POD_NAME_HERE

    kubectl exec -it POD_NAME_HERE -- sh
    
  5. 將目錄變更為 deploymentExample.yaml 中指定的 /data 掛接路徑。

  6. 您應該會在 [將子磁碟區附加至邊緣磁碟區] 區段的步驟 2 中查看指定為 path 的目錄。 現在,輸入 cd 以進入 /YOUR_PATH_NAME_HERE,並以您的詳細資料取代 YOUR_PATH_NAME_HERE

  7. 例如,建立名為 file1.txt 的檔案,並使用 echo "Hello World" > file1.txt 寫入其中。

  8. 在 Azure 入口網站中,瀏覽至您的儲存體帳戶,並尋找從 [將子磁碟區附加至邊緣磁碟區] 的步驟 2 中指定的容器。 當您選取容器時,應該會找到已在容器中填入的 file1.txt。 如果檔案尚未出現,請等候大約 1 分鐘;邊緣磁碟區在上傳前會等候 1 分鐘。

下一步

完成這些步驟之後,請使用 Azure 監視器和 Kubernetes 監視功能或使用第三方監視功能搭配 Prometheus 和 Grafana 開始監視部署。

監視您的部署