Delen via


Alternatief: OneLake-configuratie voor Edge-volumes voor cloudopname

In dit artikel wordt een alternatieve configuratie beschreven voor Cloud Ingest Edge Volumes (blob-upload met lokale opschoning) voor OneLake Lakehouses.

OneLake configureren voor extensie-identiteit

Extensie-identiteit toevoegen aan OneLake-werkruimte

  1. Navigeer naar uw OneLake-portal; bijvoorbeeld https://youraccount.powerbi.com.
  2. Maak of navigeer naar uw werkruimte. Schermopname van het werkruimtelint in de portal.
  3. Selecteer Toegang beheren. Schermopname van het scherm Toegang beheren in de portal.
  4. Selecteer Personen of groepen toevoegen.
  5. Voer de extensienaam in van uw Azure Container Storage die is ingeschakeld door de installatie van Azure Arc. Deze naam moet uniek zijn binnen uw tenant. Schermopname van het scherm Extensienaam toevoegen.
  6. Wijzig de vervolgkeuzelijst voor machtigingen van Viewer in Inzender. Schermopname van het scherm Inzender instellen.
  7. Selecteer Toevoegen.

Een permanente volumeclaim (PVC) voor cloudopname maken

  1. Maak een bestand met de naam cloudIngestPVC.yaml met de volgende inhoud. Wijzig de metadata.name waarde met een naam voor uw permanente volumeclaim. Naar deze naam wordt verwezen op de laatste regel van deploymentExample.yaml de volgende stap. U moet ook de metadata.namespace waarde bijwerken met de beoogde verbruikende pod. Als u geen beoogde pod hebt, is defaultde metadata.namespace waarde .

    Notitie

    Gebruik alleen kleine letters en streepjes. Zie de documentatie voor de naamgeving van Kubernetes-objecten voor meer informatie.

    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. Voer het volgende uit om toe te passen cloudIngestPVC.yaml:

    kubectl apply -f "cloudIngestPVC.yaml"
    

Subvolume koppelen aan Edge-volume

U kunt het volgende proces gebruiken om een subvolume te maken met behulp van Extension Identity om verbinding te maken met uw OneLake LakeHouse.

  1. Haal de naam van uw Edge-volume op met behulp van de volgende opdracht:

    kubectl get edgevolumes
    
  2. Maak een bestand met de naam edgeSubvolume.yaml en kopieer/plak de volgende inhoud. De volgende variabelen moeten worden bijgewerkt met uw gegevens:

    Notitie

    Gebruik alleen kleine letters en streepjes. Zie de documentatie voor de naamgeving van Kubernetes-objecten voor meer informatie.

    • metadata.name: Maak een naam voor uw subvolume.
    • spec.edgevolume: Deze naam is opgehaald uit de vorige stap met behulp van kubectl get edgevolumes.
    • spec.path: Maak uw eigen submapnaam onder het koppelingspad. Het volgende voorbeeld bevat al een voorbeeldnaam (exampleSubDir). Als u deze padnaam wijzigt, moet regel 33 deploymentExample.yaml worden bijgewerkt met de nieuwe padnaam. Als u ervoor kiest om de naam van het pad te wijzigen, gebruikt u geen voorgaande slash.
    • spec.container: Details van uw One Lake Data Lake LakeHouse (bijvoorbeeld <WORKSPACE>/<DATA_LAKE>.Datalake/Files).
    • spec.storageaccountendpoint: Het eindpunt van uw opslagaccount is het voorvoegsel van uw Power BI-webkoppeling. Als uw OneLake-pagina bijvoorbeeld is https://contoso-motors.powerbi.com/, is https://contoso-motors.dfs.fabric.microsoft.comuw eindpunt .
    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. Voer het volgende uit om toe te passen edgeSubvolume.yaml:

    kubectl apply -f "edgeSubvolume.yaml"
    

Optioneel: de standaardinstelling wijzigen ingestPolicy

  1. Als u de ingestPolicy standaardinstelling edgeingestpolicy-defaultwilt wijzigen, maakt u een bestand met de naam myedgeingest-policy.yaml met de volgende inhoud. De volgende variabelen moeten worden bijgewerkt met uw voorkeuren:

    Notitie

    Gebruik alleen kleine letters en streepjes. Zie de documentatie voor de naamgeving van Kubernetes-objecten voor meer informatie.

    • metadata.name: Maak een naam voor uw ingestPolicy. Deze naam moet worden bijgewerkt en waarnaar wordt verwezen in de spec.ingestPolicy sectie van uw edgeSubvolume.yaml.
    • spec.ingest.order: De volgorde waarin vuile bestanden worden geüpload. Dit is best effort, geen garantie (standaard oldest-first). Opties voor bestelling zijn: oldest-first of newest-first.
    • spec.ingest.minDelaySec: Het minimum aantal seconden voordat een vies bestand in aanmerking komt voor opname (standaard ingesteld op 60). Dit getal kan variëren tussen 0 en 31536000.
    • spec.eviction.order: Hoe bestanden worden verwijderd (standaard ingesteld unorderedop). Opties voor verwijderingsvolgorde zijn: unordered of never.
    • spec.eviction.minDelaySec: Het aantal seconden voordat een schoon bestand in aanmerking komt voor verwijdering (standaard ingesteld op 300). Dit getal kan variëren tussen 0 en 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. Voer het volgende uit om toe te passen myedgeingest-policy.yaml:

    kubectl apply -f "myedgeingest-policy.yaml"
    

Uw app koppelen (systeemeigen Kubernetes-toepassing)

  1. Als u een algemene enkele pod (Kubernetes native toepassing) wilt configureren voor de persistente volumeclaim (PVC), maakt u een bestand met de naam deploymentExample.yaml met de volgende inhoud. Vervang de waarden voor containers.name en volumes.persistentVolumeClaim.claimName door uw eigen waarden. Als u de padnaam hebt bijgewerkt, edgeSubvolume.yamlexampleSubDir moet regel 33 worden bijgewerkt met de naam van het nieuwe pad.

    Notitie

    Gebruik alleen kleine letters en streepjes. Zie de documentatie voor de naamgeving van Kubernetes-objecten voor meer informatie.

    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. Voer het volgende uit om toe te passen deploymentExample.yaml:

    kubectl apply -f "deploymentExample.yaml"
    
  3. Gebruik kubectl get pods dit om de naam van uw pod te vinden. Kopieer deze naam, zoals u nodig hebt in de volgende stap.

    Notitie

    Omdat spec.replicas van deploymentExample.yaml is opgegeven als 2, worden twee pods weergegeven met behulp van kubectl get pods. U kunt kiezen welke podnaam u wilt gebruiken voor de volgende stap.

  4. Voer de volgende opdracht uit en vervang deze door POD_NAME_HERE de gekopieerde waarde uit de vorige stap:

    kubectl exec -it POD_NAME_HERE -- sh
    
  5. Wijzig mappen in het /data koppelpad zoals opgegeven in deploymentExample.yaml.

  6. Als het goed is, ziet u een map met de naam die u hebt opgegeven in path stap 2 van de sectie Subvolume koppelen aan edge-volume . Nu, cd in /YOUR_PATH_NAME_HERE, vervangen YOUR_PATH_NAME_HERE door uw gegevens.

  7. Maak bijvoorbeeld een bestand met de naam file1.txt en schrijf ernaar met behulp van echo "Hello World" > file1.txt.

  8. Navigeer in Azure Portal naar uw opslagaccount en zoek de container die is opgegeven in stap 2 van Subvolume koppelen aan Edge-volume. Wanneer u de container selecteert, wordt file1.txt deze ingevuld in de container. Als het bestand nog niet is weergegeven, wacht u ongeveer 1 minuut. Edge-volumes wachten een minuut voordat ze worden geüpload.

Volgende stappen

Nadat u deze stappen hebt voltooid, begint u met het bewaken van uw implementatie met behulp van Azure Monitor en Kubernetes Monitoring of bewaking van derden met Prometheus en Grafana.

Uw implementatie bewaken