Udostępnij za pośrednictwem


Alternatywna: Konfiguracja usługi OneLake dla woluminów brzegowych pozyskiwania w chmurze

W tym artykule opisano alternatywną konfigurację woluminów usługi Cloud Ingest Edge (przekazywanie obiektów blob z lokalnym przeczyszczeniem) dla usługi OneLake Lakehouses.

Konfigurowanie usługi OneLake dla tożsamości rozszerzenia

Dodawanie tożsamości rozszerzenia do obszaru roboczego usługi OneLake

  1. Przejdź do portalu OneLake; na przykład https://youraccount.powerbi.com.
  2. Utwórz lub przejdź do obszaru roboczego. Zrzut ekranu przedstawiający wstążkę obszaru roboczego w portalu.
  3. Wybierz pozycję Zarządzaj dostępem. Zrzut ekranu przedstawiający ekran zarządzania dostępem w portalu.
  4. Wybierz pozycję Dodaj osoby lub grupy.
  5. Wprowadź nazwę rozszerzenia z usługi Azure Container Storage włączonej przez instalację usługi Azure Arc. Ta nazwa musi być unikatowa w dzierżawie. Zrzut ekranu przedstawiający ekran dodawania nazwy rozszerzenia.
  6. Zmień listę rozwijaną uprawnień z Osoba przeglądająca na Współautor. Zrzut ekranu przedstawiający ekran ustawiania współautora.
  7. Wybierz Dodaj.

Tworzenie oświadczenia trwałego woluminu pozyskiwania w chmurze (PVC)

  1. Utwórz plik o nazwie z cloudIngestPVC.yaml następującą zawartością. Zmodyfikuj metadata.name wartość przy użyciu nazwy oświadczenia trwałego woluminu. Ta nazwa jest przywołyowana w ostatnim wierszu deploymentExample.yaml w następnym kroku. Należy również zaktualizować metadata.namespace wartość za pomocą przeznaczonego zasobnika zużywania. Jeśli nie masz zamierzonego zasobnika zużywanego, metadata.namespace wartość to default.

    Uwaga

    Używaj tylko małych liter i kreski. Aby uzyskać więcej informacji, zobacz dokumentację nazewnictwa obiektów 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
    
  2. Aby zastosować cloudIngestPVC.yamlpolecenie , uruchom polecenie:

    kubectl apply -f "cloudIngestPVC.yaml"
    

Dołączanie podwolułki do woluminu usługi Edge

Poniższy proces umożliwia utworzenie podwoju przy użyciu tożsamości rozszerzenia w celu nawiązania połączenia z usługą OneLake LakeHouse.

  1. Pobierz nazwę woluminu usługi Edge przy użyciu następującego polecenia:

    kubectl get edgevolumes
    
  2. Utwórz plik o nazwie edgeSubvolume.yaml i skopiuj/wklej następującą zawartość. Następujące zmienne muszą zostać zaktualizowane przy użyciu Twoich informacji:

    Uwaga

    Używaj tylko małych liter i kreski. Aby uzyskać więcej informacji, zobacz dokumentację nazewnictwa obiektów Kubernetes.

    • metadata.name: Utwórz nazwę dla podvolume.
    • spec.edgevolume: Ta nazwa została pobrana z poprzedniego kroku przy użyciu polecenia kubectl get edgevolumes.
    • spec.path: Utwórz własną nazwę podkatalogu pod ścieżką instalacji. Poniższy przykład zawiera już przykładową nazwę (exampleSubDir). Jeśli zmienisz tę nazwę ścieżki, wiersz 33 w deploymentExample.yaml pliku musi zostać zaktualizowany o nową nazwę ścieżki. Jeśli zdecydujesz się zmienić nazwę ścieżki, nie używaj poprzedniego ukośnika.
    • spec.container: Szczegóły usługi One Lake Data Lake Lakehouse (na przykład <WORKSPACE>/<DATA_LAKE>.Datalake/Files).
    • spec.storageaccountendpoint: Punkt końcowy konta magazynu jest prefiksem linku internetowego usługi Power BI. Jeśli na przykład strona OneLake to https://contoso-motors.powerbi.com/, punkt końcowy to 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. Aby zastosować edgeSubvolume.yamlpolecenie , uruchom polecenie:

    kubectl apply -f "edgeSubvolume.yaml"
    

Opcjonalnie: zmodyfikuj element ingestPolicy z domyślnego

  1. Jeśli chcesz zmienić wartość z ingestPolicy domyślnej edgeingestpolicy-default, utwórz plik o nazwie z myedgeingest-policy.yaml następującą zawartością. Następujące zmienne muszą zostać zaktualizowane przy użyciu preferencji:

    Uwaga

    Używaj tylko małych liter i kreski. Aby uzyskać więcej informacji, zobacz dokumentację nazewnictwa obiektów Kubernetes.

    • metadata.name: Utwórz nazwę dla elementu ingestPolicy. Ta nazwa musi zostać zaktualizowana i odwołana w spec.ingestPolicy sekcji .edgeSubvolume.yaml
    • spec.ingest.order: kolejność przekazywania zanieczyszczonych plików. Jest to najlepsze rozwiązanie, a nie gwarancja (domyślnie ).oldest-first Opcje kolejności to: oldest-first lub newest-first.
    • spec.ingest.minDelaySec: minimalna liczba sekund, po których zanieczyszczony plik kwalifikuje się do pozyskiwania (wartość domyślna to 60). Ta liczba może mieścić się w zakresie od 0 do 31536000.
    • spec.eviction.order: jak pliki są eksmitowane (domyślnie to unordered). Opcje kolejności eksmisji to: unordered lub never.
    • spec.eviction.minDelaySec: liczba sekund, po których czysty plik kwalifikuje się do eksmisji (wartość domyślna to 300). Ta liczba może mieścić się w zakresie od 0 do 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. Aby zastosować myedgeingest-policy.yamlpolecenie , uruchom polecenie:

    kubectl apply -f "myedgeingest-policy.yaml"
    

Dołączanie aplikacji (aplikacja natywna Kubernetes)

  1. Aby skonfigurować ogólny pojedynczy zasobnik (aplikacja natywna Kubernetes) względem oświadczenia trwałego woluminu (PVC), utwórz plik o nazwie deploymentExample.yaml z następującą zawartością. Zastąp wartości i containers.name volumes.persistentVolumeClaim.claimName własnymi. W przypadku zaktualizowania nazwy ścieżki z edgeSubvolume.yamlwiersza exampleSubDir 33 należy zaktualizować przy użyciu nowej nazwy ścieżki.

    Uwaga

    Używaj tylko małych liter i kreski. Aby uzyskać więcej informacji, zobacz dokumentację nazewnictwa obiektów 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>
    
  2. Aby zastosować deploymentExample.yamlpolecenie , uruchom polecenie:

    kubectl apply -f "deploymentExample.yaml"
    
  3. Użyj polecenia kubectl get pods , aby znaleźć nazwę zasobnika. Skopiuj tę nazwę, ponieważ będzie ona potrzebna w następnym kroku.

    Uwaga

    Ponieważ spec.replicas parametr from deploymentExample.yaml został określony jako 2, dwa zasobniki są wyświetlane przy użyciu polecenia kubectl get pods. Możesz wybrać nazwę zasobnika do użycia w następnym kroku.

  4. Uruchom następujące polecenie i zastąp POD_NAME_HERE wartość skopiowaną z poprzedniego kroku:

    kubectl exec -it POD_NAME_HERE -- sh
    
  5. Zmień katalogi na ścieżkę /data instalacji, jak określono w deploymentExample.yamlpliku .

  6. Powinien zostać wyświetlony katalog o podanej path nazwie w kroku 2 sekcji Dołączanie podwolułki do woluminu krawędzi. Teraz w cd pliku /YOUR_PATH_NAME_HEREzastąp element YOUR_PATH_NAME_HERE swoimi szczegółami.

  7. Na przykład utwórz plik o nazwie file1.txt i zapisz go przy użyciu polecenia echo "Hello World" > file1.txt.

  8. W witrynie Azure Portal przejdź do konta magazynu i znajdź kontener określony w kroku 2 podwolułki Dołącz do woluminu usługi Edge. Po wybraniu kontenera powinno zostać wypełnione file1.txt w kontenerze. Jeśli plik nie został jeszcze wyświetlony, poczekaj około 1 minutę; Woluminy brzegowe czekają minutę przed przekazaniem.

Następne kroki

Po wykonaniu tych kroków rozpocznij monitorowanie wdrożenia przy użyciu usług Azure Monitor i Kubernetes Monitoring lub monitorowania innych firm przy użyciu rozwiązań Prometheus i Grafana.

Monitorowanie wdrożenia