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
- Przejdź do portalu OneLake; na przykład
https://youraccount.powerbi.com
. - Utwórz lub przejdź do obszaru roboczego.
- Wybierz pozycję Zarządzaj dostępem.
- Wybierz pozycję Dodaj osoby lub grupy.
- 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.
- Zmień listę rozwijaną uprawnień z Osoba przeglądająca na Współautor.
- Wybierz Dodaj.
Tworzenie oświadczenia trwałego woluminu pozyskiwania w chmurze (PVC)
Utwórz plik o nazwie z
cloudIngestPVC.yaml
następującą zawartością. Zmodyfikujmetadata.name
wartość przy użyciu nazwy oświadczenia trwałego woluminu. Ta nazwa jest przywołyowana w ostatnim wierszudeploymentExample.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ść todefault
.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
Aby zastosować
cloudIngestPVC.yaml
polecenie , 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.
Pobierz nazwę woluminu usługi Edge przy użyciu następującego polecenia:
kubectl get edgevolumes
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 poleceniakubectl 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 wdeploymentExample.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 tohttps://contoso-motors.powerbi.com/
, punkt końcowy tohttps://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
Aby zastosować
edgeSubvolume.yaml
polecenie , uruchom polecenie:kubectl apply -f "edgeSubvolume.yaml"
Opcjonalnie: zmodyfikuj element ingestPolicy
z domyślnego
Jeśli chcesz zmienić wartość z
ingestPolicy
domyślnejedgeingestpolicy-default
, utwórz plik o nazwie zmyedgeingest-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 elementuingestPolicy
. Ta nazwa musi zostać zaktualizowana i odwołana wspec.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
lubnewest-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 tounordered
). Opcje kolejności eksmisji to:unordered
lubnever
.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>
Aby zastosować
myedgeingest-policy.yaml
polecenie , uruchom polecenie:kubectl apply -f "myedgeingest-policy.yaml"
Dołączanie aplikacji (aplikacja natywna Kubernetes)
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 icontainers.name
volumes.persistentVolumeClaim.claimName
własnymi. W przypadku zaktualizowania nazwy ścieżki zedgeSubvolume.yaml
wierszaexampleSubDir
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>
Aby zastosować
deploymentExample.yaml
polecenie , uruchom polecenie:kubectl apply -f "deploymentExample.yaml"
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 fromdeploymentExample.yaml
został określony jako2
, dwa zasobniki są wyświetlane przy użyciu poleceniakubectl get pods
. Możesz wybrać nazwę zasobnika do użycia w następnym kroku.Uruchom następujące polecenie i zastąp
POD_NAME_HERE
wartość skopiowaną z poprzedniego kroku:kubectl exec -it POD_NAME_HERE -- sh
Zmień katalogi na ścieżkę
/data
instalacji, jak określono wdeploymentExample.yaml
pliku .Powinien zostać wyświetlony katalog o podanej
path
nazwie w kroku 2 sekcji Dołączanie podwolułki do woluminu krawędzi. Teraz wcd
pliku/YOUR_PATH_NAME_HERE
zastąp elementYOUR_PATH_NAME_HERE
swoimi szczegółami.Na przykład utwórz plik o nazwie
file1.txt
i zapisz go przy użyciu poleceniaecho "Hello World" > file1.txt
.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.