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
- Navigieren Sie zu Ihrem OneLake-Portal, z. B.
https://youraccount.powerbi.com
. - Navigieren Sie zu Ihrem Arbeitsbereich, oder erstellen Sie ihn.
- Wählen Sie Zugriff verwalten aus.
- Wählen Sie Personen oder Gruppen hinzufügen.
- 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.
- Ändern Sie den Wert in der Dropdownliste für Berechtigungen von Anzeigender Benutzer in Mitwirkender.
- Wählen Sie Hinzufügen.
Erstellen eines persistenten Volumenanspruchs (Persistent Volume Claim, PVC) für die Clouderfassung
Erstellen Sie eine Datei namens
cloudIngestPVC.yaml
mit folgendem Inhalt. Ändern Sie denmetadata.name
-Wert in den Namen für Ihren persistenten Volumeanspruch. Auf diesen Namen wird in der letzten Zeile vondeploymentExample.yaml
im nächsten Schritts verwiesen. Sie müssen außerdem denmetadata.namespace
-Wert mit Ihrem beabsichtigten verbrauchenden Pod aktualisieren. Wenn Sie nicht über einen beabsichtigten, verbrauchenden Pod verfügen, hatmetadata.namespace
den Wertdefault
.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
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.
Rufen Sie den Namen Ihres Edgevolumes mit dem folgenden Befehl ab:
kubectl get edgevolumes
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 mitkubectl 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, mussdeploymentExample.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 beispielsweisehttps://contoso-motors.powerbi.com/
lautet, ist Ihr Endpunkthttps://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
Führen Sie zum Anwenden von
edgeSubvolume.yaml
Folgendes aus:kubectl apply -f "edgeSubvolume.yaml"
Optional: Ändern Sie den Standardwert von ingestPolicy
.
Wenn Sie für
ingestPolicy
den Standardwertedgeingestpolicy-default
ändern möchten, erstellen Sie eine Datei namensmyedgeingest-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 IhreingestPolicy
fest. Dieser Name muss im Abschnittspec.ingestPolicy
Ihrer DateiedgeSubvolume.yaml
aktualisiert und referenziert werden.spec.ingest.order
: Reihenfolge, in der geänderte Dateien hochgeladen werden. Dies ist ein Versuch, keine Garantie (Standardwertoldest-first
). Optionen für die Reihenfolge:oldest-first
odernewest-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 (Standardwertunordered
). Optionen für die Bereinigungsreihenfolge:unordered
odernever
.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>
Führen Sie zum Anwenden von
myedgeingest-policy.yaml
Folgendes aus:kubectl apply -f "myedgeingest-policy.yaml"
Anfügen Ihrer App (native Kubernetes-Anwendung)
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ürcontainers.name
undvolumes.persistentVolumeClaim.claimName
durch Ihre eigenen. Wenn Sie den Pfadnamen vonedgeSubvolume.yaml
geändert haben, müssen SieexampleSubDir
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>
Führen Sie zum Anwenden von
deploymentExample.yaml
Folgendes aus:kubectl apply -f "deploymentExample.yaml"
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
vondeploymentExample.yaml
als2
angegeben wurde, werden mitkubectl get pods
zwei Pods angezeigt. Sie können einen der beiden Podnamen für den nächsten Schritt auswählen.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
Wechseln Sie in den Bereitstellungspfad
/data
, wie in Ihrer DateideploymentExample.yaml
angegeben.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 mitcd
in/YOUR_PATH_NAME_HERE
, und ersetzen SieYOUR_PATH_NAME_HERE
durch Ihre eigenen Daten.Erstellen Sie z. B. eine Datei mit dem Namen
file1.txt
, und schreiben Sie darin mithilfe vonecho "Hello World" > file1.txt
.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.