Alternativa: configurazione di OneLake per Volumi Edge di inserimento cloud
Questo articolo descrive una configurazione alternativa per Volumi Edge di inserimento cloud (caricamento BLOB con ripulitura locale) per lakehouse OneLake.
Configurare OneLake per l'identità dell'estensione
Aggiungere l'identità dell'estensione all'area di lavoro di OneLake
- Passare al portale di OneLake; ad esempio,
https://youraccount.powerbi.com
. - Creare o passare all'area di lavoro.
- Selezionare Gestisci accesso.
- Selezionare Aggiungi persone o gruppi.
- Immettere il nome dell'estensione dall'installazione di Archiviazione di Container Azure abilitata da Azure Arc. Questo nome deve essere univoco all'interno del tenant.
- Modificare l'elenco a discesa per le autorizzazioni da Visualizzatore a Collaboratore.
- Selezionare Aggiungi.
Creare un'attestazione di volume permanente (PVC) di inserimento cloud
Creare un file denominato
cloudIngestPVC.yaml
con il contenuto seguente. Modificare il valoremetadata.name
impostando un nome per l'attestazione di volume permanente. Si fa riferimento a questo nome nell'ultima riga dideploymentExample.yaml
nel passaggio successivo. È anche necessario aggiornare il valore dimetadata.namespace
con il pod di utilizzo previsto. Se non si dispone di un pod di utilizzo previsto, il valore dimetadata.namespace
èdefault
.Nota
Usare solo lettere minuscole e trattini. Per altre informazioni, vedere la documentazione sulla denominazione degli oggetti 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
Per applicare
cloudIngestPVC.yaml
, eseguire:kubectl apply -f "cloudIngestPVC.yaml"
Collegare un volume secondario a un volume Edge
È possibile usare la procedura seguente per creare un volume secondario usando l'identità dell'estensione per connettersi al lakehouse di OneLake.
Ottenere il nome del volume Edge usando il comando seguente:
kubectl get edgevolumes
Creare un file denominato
edgeSubvolume.yaml
e copiare/incollare i contenuti seguenti. Le variabili seguenti devono essere aggiornate con le informazioni personalizzate:Nota
Usare solo lettere minuscole e trattini. Per altre informazioni, vedere la documentazione sulla denominazione degli oggetti Kubernetes.
metadata.name
: creare un nome per il volume secondario.spec.edgevolume
: questo nome è stato recuperato dal passaggio precedente usandokubectl get edgevolumes
.spec.path
: creare un nome di sottodirectory personalizzato nel percorso di montaggio. L'esempio seguente contiene già un nome di esempio (exampleSubDir
). Se si modifica questo nome di percorso, è necessario aggiornare la riga 33 indeploymentExample.yaml
con il nuovo nome del percorso. Se si sceglie di rinominare il percorso, non inserire prima una barra.spec.container
: dettagli del data lakehouse di OneLake (ad esempio,<WORKSPACE>/<DATA_LAKE>.Datalake/Files
).spec.storageaccountendpoint
: l'endpoint dell'account di archiviazione è il prefisso del collegamento Web di Power BI. Ad esempio, se la pagina OneLake èhttps://contoso-motors.powerbi.com/
, l'endpoint sarà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
Per applicare
edgeSubvolume.yaml
, eseguire:kubectl apply -f "edgeSubvolume.yaml"
Facoltativo: modificare ingestPolicy
dalle impostazioni predefinite
Se si desidera modificare
ingestPolicy
dall'impostazione predefinitaedgeingestpolicy-default
, creare un file denominatomyedgeingest-policy.yaml
con il contenuto seguente. Le variabili seguenti devono essere aggiornate con le preferenze specifiche:Nota
Usare solo lettere minuscole e trattini. Per altre informazioni, vedere la documentazione sulla denominazione degli oggetti Kubernetes.
metadata.name
: creare un nome peringestPolicy
. Questo nome deve essere aggiornato e occorre farvi riferimento nella sezionespec.ingestPolicy
diedgeSubvolume.yaml
.spec.ingest.order
: ordine di caricamento dei file modificati ma non salvati. Si tratta del tentativo migliore, non di una garanzia (il valore predefinito èoldest-first
). Le opzioni per l'ordine sono:oldest-first
onewest-first
.spec.ingest.minDelaySec
: numero minimo di secondi prima che un file modificato ma non salvato sia idoneo per l'inserimento (il valore predefinito è 60). Questo numero può essere compreso tra 0 e 31536000.spec.eviction.order
: modalità di rimozione dei file (il valore predefinito èunordered
). Le opzioni per l'ordine di rimozione sono:unordered
onever
.spec.eviction.minDelaySec
: numero di secondi prima che un file pulito sia idoneo per la rimozione (il valore predefinito è 300). Questo numero può essere compreso tra 0 e 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>
Per applicare
myedgeingest-policy.yaml
, eseguire:kubectl apply -f "myedgeingest-policy.yaml"
Collegare l'app (applicazione nativa Kubernetes)
Per configurare un singolo pod generico (applicazione nativa Kubernetes) in base all'attestazione di volume permanente (PVC), creare un file denominato
deploymentExample.yaml
con il contenuto seguente. Sostituire i valori dicontainers.name
evolumes.persistentVolumeClaim.claimName
con valori personalizzati. Se il nome del percorso è stato aggiornato daedgeSubvolume.yaml
, è necessario aggiornareexampleSubDir
alla riga 33 con il nuovo nome del percorso.Nota
Usare solo lettere minuscole e trattini. Per altre informazioni, vedere la documentazione sulla denominazione degli oggetti 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>
Per applicare
deploymentExample.yaml
, eseguire:kubectl apply -f "deploymentExample.yaml"
Usare
kubectl get pods
per trovare il nome del pod. Copiare questo nome, perché è necessario nel passaggio successivo.Nota
Poiché
spec.replicas
dadeploymentExample.yaml
è stato specificato come2
, vengono visualizzati due pod tramitekubectl get pods
. È possibile scegliere uno dei nomi dei pod da usare per il passaggio successivo.Eseguire il comando seguente e sostituire
POD_NAME_HERE
con il valore copiato dal passaggio precedente:kubectl exec -it POD_NAME_HERE -- sh
Cambiare directory impostando il percorso di montaggio
/data
specificato indeploymentExample.yaml
.Verrà visualizzata una directory con il nome specificato come
path
nel passaggio 2 della sezione Collegare un volume secondario a un volume Edge. Ora,cd
in/YOUR_PATH_NAME_HERE
, sostituendoYOUR_PATH_NAME_HERE
con i dettagli personalizzati.Ad esempio, creare un file denominato
file1.txt
e scrivervi usandoecho "Hello World" > file1.txt
.Nel portale di Azure passare all'account di archiviazione e trovare il contenitore specificato nel passaggio 2 di Collegare un volume secondario a un volume Edge. Quando si seleziona il contenitore,
file1.txt
dovrebbe essere popolato all'interno del contenitore. Se il file non è ancora visualizzato, attendere circa 1 minuto. Volumi Edge attende un minuto prima del caricamento.
Passaggi successivi
Dopo aver completato questi passaggi, è possibile iniziare a monitorare la distribuzione usando Monitoraggio di Azure e il monitoraggio di Kubernetes o il monitoraggio di terze parti con Prometheus e Grafana.