Dela via


Alternativ: OneLake-konfiguration för Cloud Ingest Edge-volymer

Den här artikeln beskriver en alternativ konfiguration för Cloud Ingest Edge-volymer (blobuppladdning med lokal rensning) för OneLake Lakehouses.

Konfigurera OneLake för tilläggsidentitet

Lägga till tilläggsidentitet i OneLake-arbetsytan

  1. Gå till OneLake-portalen; till exempel https://youraccount.powerbi.com.
  2. Skapa eller navigera till din arbetsyta. Skärmbild som visar menyfliksområdet för arbetsytan i portalen.
  3. Välj Hantera åtkomst. Skärmbild som visar skärmen Hantera åtkomst i portalen.
  4. Välj Lägg till personer eller grupper.
  5. Ange ditt tilläggsnamn från Azure Container Storage som aktiveras av Azure Arc-installationen. Det här namnet måste vara unikt i din klientorganisation. Skärmbild som visar skärmen lägg till tilläggsnamn.
  6. Ändra listrutan för behörigheter från Visningsprogram till Deltagare. Skärmbild som visar skärmen Ange deltagare.
  7. Markera Lägga till.

Skapa ett cloud Ingest Persistent Volume Claim (PVC)

  1. Skapa en fil med namnet cloudIngestPVC.yaml med följande innehåll. Ändra värdet metadata.name med ett namn för ditt beständiga volymanspråk. Det här namnet refereras till på den sista raden deploymentExample.yaml i i nästa steg. Du måste också uppdatera metadata.namespace värdet med din avsedda förbrukningspodd. Om du inte har en avsedd förbrukningspodd metadata.namespace är defaultvärdet .

    Kommentar

    Använd endast gemener och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt.

    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. Om du vill tillämpa cloudIngestPVC.yamlkör du:

    kubectl apply -f "cloudIngestPVC.yaml"
    

Koppla delvolym till Edge-volym

Du kan använda följande process för att skapa en delvolym med hjälp av tilläggsidentitet för att ansluta till din OneLake LakeHouse.

  1. Hämta namnet på din Edge-volym med hjälp av följande kommando:

    kubectl get edgevolumes
    
  2. Skapa en fil med namnet edgeSubvolume.yaml och kopiera/klistra in följande innehåll. Följande variabler måste uppdateras med din information:

    Kommentar

    Använd endast gemener och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt.

    • metadata.name: Skapa ett namn för delmängden.
    • spec.edgevolume: Det här namnet hämtades från föregående steg med hjälp av kubectl get edgevolumes.
    • spec.path: Skapa ett eget underkatalognamn under monteringssökvägen. Följande exempel innehåller redan ett exempelnamn (exampleSubDir). Om du ändrar det här sökvägsnamnet måste rad 33 i deploymentExample.yaml uppdateras med det nya sökvägsnamnet. Om du väljer att byta namn på sökvägen ska du inte använda ett föregående snedstreck.
    • spec.container: Information om din One Lake Data Lake Lake Lakehouse (till exempel <WORKSPACE>/<DATA_LAKE>.Datalake/Files).
    • spec.storageaccountendpoint: Slutpunkten för lagringskontot är prefixet för din Power BI-webblänk. Om din OneLake-sida till exempel är https://contoso-motors.powerbi.com/är https://contoso-motors.dfs.fabric.microsoft.comslutpunkten .
    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. Om du vill tillämpa edgeSubvolume.yamlkör du:

    kubectl apply -f "edgeSubvolume.yaml"
    

Valfritt: Ändra ingestPolicy från standardvärdet

  1. Om du vill ändra ingestPolicy från standardvärdet edgeingestpolicy-defaultskapar du en fil med namnet myedgeingest-policy.yaml med följande innehåll. Följande variabler måste uppdateras med dina inställningar:

    Kommentar

    Använd endast gemener och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt.

    • metadata.name: Skapa ett namn för .ingestPolicy Det här namnet måste uppdateras och refereras till i avsnittet i spec.ingestPolicy din edgeSubvolume.yaml.
    • spec.ingest.order: I vilken ordning smutsiga filer laddas upp. Det här är bästa sättet, inte en garanti (standardvärdet oldest-firstär ). Alternativ för beställning är: oldest-first eller newest-first.
    • spec.ingest.minDelaySec: Det minsta antalet sekunder innan en smutsig fil är berättigad till inmatning (standardvärdet är 60). Det här talet kan vara mellan 0 och 31536000.
    • spec.eviction.order: Hur filer tas bort (standardvärdet är unordered). Alternativ för borttagningsordning är: unordered eller never.
    • spec.eviction.minDelaySec: Antalet sekunder innan en ren fil är berättigad till borttagning (standardvärdet är 300). Det här talet kan vara mellan 0 och 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. Om du vill tillämpa myedgeingest-policy.yamlkör du:

    kubectl apply -f "myedgeingest-policy.yaml"
    

Bifoga din app (kubernetes-inbyggt program)

  1. Om du vill konfigurera en allmän enskild podd (kubernetes-inbyggt program) mot PVC (Persistent Volume Claim) skapar du en fil med namnet deploymentExample.yaml med följande innehåll. Ersätt värdena för containers.name och volumes.persistentVolumeClaim.claimName med dina egna. Om du har uppdaterat sökvägsnamnet från edgeSubvolume.yamlexampleSubDir måste rad 33 uppdateras med det nya sökvägsnamnet.

    Kommentar

    Använd endast gemener och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt.

    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. Om du vill tillämpa deploymentExample.yamlkör du:

    kubectl apply -f "deploymentExample.yaml"
    
  3. Använd kubectl get pods för att hitta namnet på din podd. Kopiera det här namnet eftersom du behöver det i nästa steg.

    Kommentar

    Eftersom spec.replicas från deploymentExample.yaml har angetts som 2visas två poddar med .kubectl get pods Du kan välja vilket poddnamn som ska användas för nästa steg.

  4. Kör följande kommando och ersätt POD_NAME_HERE med det kopierade värdet från föregående steg:

    kubectl exec -it POD_NAME_HERE -- sh
    
  5. Ändra kataloger till monteringssökvägen enligt beskrivningen /data i deploymentExample.yaml.

  6. Du bör se en katalog med det namn som du angav som i path steg 2 i avsnittet Koppla delvolym till Edge-volym . cd /YOUR_PATH_NAME_HEREYOUR_PATH_NAME_HERE I ersätter du nu med dina uppgifter.

  7. Skapa till exempel en fil med namnet file1.txt och skriv till den med hjälp av echo "Hello World" > file1.txt.

  8. I Azure Portal går du till ditt lagringskonto och letar reda på containern som angetts från steg 2 i Koppla delvolym till Edge-volym. När du väljer din container bör du hitta file1.txt ifylld i containern. Om filen inte har dykt upp ännu väntar du ungefär 1 minut. Edge-volymer väntar en minut innan de laddas upp.

Nästa steg

När du har slutfört de här stegen börjar du övervaka distributionen med Azure Monitor och Kubernetes Monitoring, eller tredjepartsövervakning med Prometheus och Grafana.

Övervaka distributionen