Freigeben über


Alternative: OneLake-Konfiguration für Edgevolumes für die Clouderfassung

In diesem Artikel wird eine alternative Konfiguration für Edgevolumes für die Clouderfassung (Blobupload mit lokaler Bereinigung) für OneLake-Lakehouses beschrieben.

Konfigurieren von OneLake für die Erweiterungsidentität

Hinzufügen der Erweiterungsidentität zum OneLake-Arbeitsbereich

  1. Navigieren Sie zu Ihrem OneLake-Portal, z. B. https://youraccount.powerbi.com.
  2. Navigieren Sie zu Ihrem Arbeitsbereich, oder erstellen Sie ihn. Screenshot des Menübands „Arbeitsbereich“ im Portal
  3. Wählen Sie Zugriff verwalten aus. Screenshot des Bildschirms „Zugriff verwalten“ im Portal
  4. Wählen Sie Personen oder Gruppen hinzufügen.
  5. Geben Sie den Erweiterungsnamen aus Ihrer Installation von Azure Container Storage mit Azure Arc-Unterstützung ein. Dieser Name muss innerhalb Ihres Mandanten eindeutig sein. Screenshot des Bildschirms „Erweiterungsname hinzufügen“
  6. Ändern Sie den Wert in der Dropdownliste für Berechtigungen von Anzeigender Benutzer in Mitwirkender. Screenshot des Bildschirms für das Festlegen der Rolle „Mitwirkender“
  7. Wählen Sie Hinzufügen.

Erstellen eines persistenten Volumenanspruchs (Persistent Volume Claim, PVC) für die Clouderfassung

  1. Erstellen Sie eine Datei namens cloudIngestPVC.yaml mit folgendem Inhalt. Ändern Sie den metadata.name-Wert in den Namen für Ihren persistenten Volumeanspruch. Auf diesen Namen wird in der letzten Zeile von deploymentExample.yaml im nächsten Schritts verwiesen. Sie müssen außerdem den metadata.namespace-Wert mit Ihrem beabsichtigten verbrauchenden Pod aktualisieren. Wenn Sie nicht über einen beabsichtigten, verbrauchenden Pod verfügen, hat metadata.namespace den Wert default.

    Hinweis

    Verwenden Sie nur Kleinbuchstaben und Bindestriche. Weitere Informationen finden Sie in der Dokumentation zur Benennung von Kubernetes-Objekten.

    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. Führen Sie zum Anwenden von cloudIngestPVC.yaml Folgendes aus:

    kubectl apply -f "cloudIngestPVC.yaml"
    

Anfügen eines Untervolumes an ein Edgevolume

Sie können wie folgt ein Untervolume mithilfe der Erweiterungsidentität erstellen, um eine Verbindung mit Ihrem OneLake-Lakehouse herzustellen.

  1. Rufen Sie den Namen Ihres Edgevolumes mit dem folgenden Befehl ab:

    kubectl get edgevolumes
    
  2. Erstellen Sie eine Datei namens edgeSubvolume.yaml, und fügen Sie die folgende Inhalte ein. Die folgenden Variablen müssen mit Ihren Informationen aktualisiert werden:

    Hinweis

    Verwenden Sie nur Kleinbuchstaben und Bindestriche. Weitere Informationen finden Sie in der Dokumentation zur Benennung von Kubernetes-Objekten.

    • metadata.name: Legen Sie einen Namen für Ihr Untervolume fest.
    • spec.edgevolume: Dieser Name wurde im vorherigen Schritt mit kubectl get edgevolumes abgerufen.
    • spec.path: Erstellen Sie einen eigenen Unterverzeichnisnamen unter dem Bereitstellungspfad. Das folgende Beispiel enthält bereits einen Beispielnamen (exampleSubDir). Wenn Sie diesen Pfadnamen ändern, muss deploymentExample.yaml in Zeile 33 mit dem neuen Pfadnamen aktualisiert werden. Wenn Sie den Pfad umbenennen möchten, verwenden Sie keinen vorangestellten Schrägstrich.
    • spec.container: Details Ihres OneLake Data Lake-Lakehouses (z. B. <WORKSPACE>/<DATA_LAKE>.Datalake/Files).
    • spec.storageaccountendpoint: Der Endpunkt Ihres Speicherkontos ist das Präfix Ihres Power BI-Weblinks. Wenn Ihre OneLake-Seite beispielsweise https://contoso-motors.powerbi.com/ lautet, ist Ihr Endpunkt 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. Führen Sie zum Anwenden von edgeSubvolume.yaml Folgendes aus:

    kubectl apply -f "edgeSubvolume.yaml"
    

Optional: Ändern Sie den Standardwert von ingestPolicy.

  1. Wenn Sie für ingestPolicy den Standardwert edgeingestpolicy-default ändern möchten, erstellen Sie eine Datei namens myedgeingest-policy.yaml mit folgendem Inhalt. Die folgenden Variablen müssen mit Ihren Einstellungen aktualisiert werden:

    Hinweis

    Verwenden Sie nur Kleinbuchstaben und Bindestriche. Weitere Informationen finden Sie in der Dokumentation zur Benennung von Kubernetes-Objekten.

    • metadata.name: Legen Sie einen Namen für Ihre ingestPolicy fest. Dieser Name muss im Abschnitt spec.ingestPolicy Ihrer Datei edgeSubvolume.yaml aktualisiert und referenziert werden.
    • spec.ingest.order: Reihenfolge, in der geänderte Dateien hochgeladen werden. Dies ist ein Versuch, keine Garantie (Standardwert oldest-first). Optionen für die Reihenfolge: oldest-first oder newest-first.
    • spec.ingest.minDelaySec: Mindestanzahl von Sekunden, bevor eine geänderte Datei erfasst werden kann (Standardwert 60). Diese Zahl kann zwischen 0 und 31.536.000 liegen.
    • spec.eviction.order: Reihenfolge für die Dateibereinigung (Standardwert unordered). Optionen für die Bereinigungsreihenfolge: unordered oder never.
    • spec.eviction.minDelaySec: Anzahl der Sekunden, bevor eine abgeglichene Datei bereinigt werden darf (Standardwert 300). Diese Zahl kann zwischen 0 und 31.536.000 liegen.
    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. Führen Sie zum Anwenden von myedgeingest-policy.yaml Folgendes aus:

    kubectl apply -f "myedgeingest-policy.yaml"
    

Anfügen Ihrer App (native Kubernetes-Anwendung)

  1. Erstellen Sie zum Konfigurieren eines generischen einzelnen Pods (native Kubernetes-Anwendung) für den persistenten Volumeanspruch (PVC) eine Datei mit dem Namen deploymentExample.yaml und folgendem Inhalt. Ersetzen Sie die Werte für containers.name und volumes.persistentVolumeClaim.claimName durch Ihre eigenen. Wenn Sie den Pfadnamen von edgeSubvolume.yaml geändert haben, müssen Sie exampleSubDir in Zeile 33 mit dem neuen Pfadnamen aktualisieren.

    Hinweis

    Verwenden Sie nur Kleinbuchstaben und Bindestriche. Weitere Informationen finden Sie in der Dokumentation zur Benennung von Kubernetes-Objekten.

    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. Führen Sie zum Anwenden von deploymentExample.yaml Folgendes aus:

    kubectl apply -f "deploymentExample.yaml"
    
  3. Verwenden Sie kubectl get pods, um den Namen Ihres Pods zu finden. Kopieren Sie diesen Namen, da Sie ihn im nächsten Schritt benötigen.

    Hinweis

    Da spec.replicas von deploymentExample.yaml als 2 angegeben wurde, werden mit kubectl get pods zwei Pods angezeigt. Sie können einen der beiden Podnamen für den nächsten Schritt auswählen.

  4. Führen Sie den folgenden Befehl aus, und ersetzen Sie POD_NAME_HERE durch ihren kopierten Wert aus dem vorherigen Schritt:

    kubectl exec -it POD_NAME_HERE -- sh
    
  5. Wechseln Sie in den Bereitstellungspfad /data, wie in Ihrer Datei deploymentExample.yaml angegeben.

  6. Es sollte ein Verzeichnis mit dem Namen angezeigt werden, den Sie in Schritt 2 im Abschnitt Anfügen eines Untervolumes an ein Edgevolume als path angegeben haben. Wechseln Sie nun mit cd in /YOUR_PATH_NAME_HERE, und ersetzen Sie YOUR_PATH_NAME_HERE durch Ihre eigenen Daten.

  7. Erstellen Sie z. B. eine Datei mit dem Namen file1.txt, und schreiben Sie darin mithilfe von echo "Hello World" > file1.txt.

  8. Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto, und suchen Sie den Container aus Schritt 2 im Abschnitt Anfügen eines Untervolumes an ein Edgevolume. Wenn Sie Ihren Container auswählen, sollte file1.txt im Container ausgefüllt werden. Wenn die Datei noch nicht angezeigt wurde, warten Sie ungefähr 1 Minute – die Wartezeit von Edgevolumes beim Upload.

Nächste Schritte

Nachdem Sie diese Schritte ausgeführt haben, beginnen Sie mit der Überwachung Ihrer Bereitstellung mit Azure Monitor und Kubernetes Monitoring oder einer Überwachung von Drittanbietern mit Prometheus und Grafana.

Überwachen der Bereitstellung