Dela via


Konfiguration av Cloud Ingest Edge-volymer

Den här artikeln beskriver konfigurationen för Cloud Ingest Edge-volymer (blobuppladdning med lokal rensning).

Vad är Cloud Ingest Edge-volymer?

Cloud Ingest Edge-volymer underlättar obegränsad datainmatning från kant till blob, inklusive ADLSgen2. Filer som skrivs till den här lagringstypen överförs sömlöst till bloblagring och när de har bekräftats som uppladdade rensas de sedan lokalt. Den här borttagningen säkerställer utrymmestillgänglighet för nya data. Dessutom stöder det här lagringsalternativet dataintegritet i frånkopplade miljöer, vilket möjliggör lokal lagring och synkronisering vid återanslutning till nätverket.

Du kan till exempel skriva en fil till din molninmatning av PVC, och en process kör en genomsökning för att söka efter nya filer varje minut. När den har identifierats skickas filen för uppladdning till ditt avsedda blobmål. Efter bekräftelse av en lyckad uppladdning väntar Cloud Ingest Edge-volymen i fem minuter och tar sedan bort den lokala versionen av filen.

Förutsättningar

  1. Skapa ett lagringskonto enligt anvisningarna här.

    Kommentar

    När du skapar ditt lagringskonto rekommenderar vi att du skapar det under samma resursgrupp och region/plats som ditt Kubernetes-kluster.

  2. Skapa en container i lagringskontot som du skapade tidigare, enligt anvisningarna här.

Konfigurera tilläggsidentitet

Edge-volymer tillåter användning av en systemtilldelad tilläggsidentitet för åtkomst till bloblagring. I det här avsnittet beskrivs hur du använder den systemtilldelade tilläggsidentiteten för att bevilja åtkomst till ditt lagringskonto, så att du kan ladda upp molninmatningsvolymer till dessa lagringssystem.

Vi rekommenderar att du använder tilläggsidentitet. Om slutmålet är bloblagring eller ADLSgen2 kan du läsa följande instruktioner. Om ditt slutliga mål är OneLake följer du anvisningarna i Konfigurera OneLake för tilläggsidentitet.

Även om det inte rekommenderas följer du anvisningarna i Nyckelbaserad autentisering om du föredrar att använda nyckelbaserad autentisering.

Hämta tilläggsidentitet

Azure Portal

  1. Gå till det Arc-anslutna klustret.
  2. Välj Tillägg.
  3. Välj din Azure Container Storage aktiverad av Azure Arc-tillägget.
  4. Observera huvudnamns-ID:t under Information om klustertillägg.

Konfigurera bloblagringskonto för tilläggsidentitet

Lägga till behörigheter för tilläggsidentitet till ett lagringskonto

  1. Gå till lagringskontot i Azure Portal.
  2. Välj Access Control (IAM).
  3. Välj Lägg till+ –> Lägg till rolltilldelning.
  4. Välj Lagringsblobdataägare och välj sedan Nästa.
  5. Välj +Välj medlemmar.
  6. Om du vill lägga till ditt huvudnamns-ID i listan Valda medlemmar: klistrar du in ID:t och väljer + bredvid identiteten.
  7. Klicka på Välj.
  8. Om du vill granska och tilldela behörigheter väljer du Nästa och sedan Granska + Tilldela.

Skapa ett cloud Ingest Persistent Volume Claim (PVC)

  1. Skapa en fil med namnet cloudIngestPVC.yaml med följande innehåll. metadata.name Redigera raden och skapa ett namn för ditt beständiga volymanspråk. Det här namnet refereras till på den sista raden deploymentExample.yaml i i nästa steg. metadata.namespace Uppdatera även värdet med din avsedda förbrukningspodd. Om du inte har en avsedd förbrukningspodd metadata.namespace är defaultvärdet . Parametern spec.resources.requests.storage avgör storleken på den beständiga volymen. Det är 2 GB i det här exemplet, men kan ändras så att det passar dina behov:

    Kommentar

    Använd endast gemener och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      ### Create a name for your PVC ###
      name: <create-persistent-volume-claim-name-here>
      ### Use a namespace that matched 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. Om du vill tillämpa cloudIngestPVC.yamlkör du:

    kubectl apply -f "cloudIngestPVC.yaml"
    

Koppla delvolym till Edge-volym

Använd följande process för att skapa en delvolume med hjälp av tilläggsidentitet för att ansluta till lagringskontocontainern:

  1. Hämta namnet på din Ingest Edge-volym med hjälp av följande kommando:

    kubectl get edgevolumes
    
  2. Skapa en fil med namnet edgeSubvolume.yaml och kopiera följande innehåll. Dessa variabler måste uppdateras med din information:

    Kommentar

    Använd endast gemener och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt.

    • metadata.name: Skapa ett namn för delmängden.
    • spec.edgevolume: Det här namnet hämtades från föregående steg med hjälp av kubectl get edgevolumes.
    • spec.path: Skapa ett eget underkatalognamn under monteringssökvägen. Följande exempel innehåller redan ett exempelnamn (exampleSubDir). Om du ändrar det här sökvägsnamnet måste rad 33 i deploymentExample.yaml uppdateras med det nya sökvägsnamnet. Om du väljer att byta namn på sökvägen ska du inte använda ett föregående snedstreck.
    • spec.container: Containernamnet i ditt lagringskonto.
    • spec.storageaccountendpoint: Gå till ditt lagringskonto i Azure Portal. På sidan Översikt väljer du JSON-vy längst upp till höger på skärmen. Du hittar länken storageaccountendpoint under properties.primaryEndpoints.blob. Kopiera hela länken; till exempel https://mytest.blob.core.windows.net/.
    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 be updated. Don't use a preceding slash.
      auth:
        authType: MANAGED_IDENTITY
      storageaccountendpoint: "https://<STORAGE ACCOUNT NAME>.blob.core.windows.net/"
      container: <your-blob-storage-account-container-name>
      ingestPolicy: edgeingestpolicy-default # Optional: See the following instructions if you want to update the ingestPolicy with your own configuration
    
  3. Om du vill tillämpa edgeSubvolume.yamlkör du:

    kubectl apply -f "edgeSubvolume.yaml"
    

Valfritt: Ändra ingestPolicy från standardvärdet

  1. Om du vill ändra ingestPolicy från standardvärdet edgeingestpolicy-defaultskapar du en fil med namnet myedgeingest-policy.yaml med följande innehåll. Följande variabler måste uppdateras med dina inställningar:

    Kommentar

    Använd endast gemener och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt.

    • metadata.name: Skapa ett namn för din ingestPolicy. Det här namnet måste uppdateras och refereras till i avsnittet i spec.ingestPolicy din edgeSubvolume.yaml.
    • spec.ingest.order: I vilken ordning smutsiga filer laddas upp. Det här är bästa ansträngningen, inte en garanti (standardvärdet är äldsta-först). Alternativ för beställning är: äldsta eller nyaste först.
    • spec.ingest.minDelaySec: Det minsta antalet sekunder innan en smutsig fil är berättigad till inmatning (standardvärdet är 60). Det här talet kan vara mellan 0 och 31536000.
    • spec.eviction.order: Hur filer tas bort (standardvärdet är oordnad). Alternativ för borttagningsordning är: osorterade eller aldrig.
    • spec.eviction.minDelaySec: Antalet sekunder innan en ren fil är berättigad till borttagning (standardvärdet är 300). Det här talet kan vara mellan 0 och 31536000.
    apiVersion: arccontainerstorage.azure.net/v1
    kind: EdgeIngestPolicy
    metadata:
      name: <create-a-policy-name-here> # This must 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>
    

    Mer information om dessa specifikationer finns i Ange inmatningsprincip.

  2. Om du vill tillämpa myedgeingest-policy.yamlkör du:

    kubectl apply -f "myedgeingest-policy.yaml"
    

Bifoga din app (kubernetes-inbyggt program)

  1. Om du vill konfigurera en allmän enskild podd (kubernetes-inbyggt program) mot PVC (Persistent Volume Claim) skapar du en fil med namnet deploymentExample.yaml med följande innehåll. containers.name Ändra värdena ochvolumes.persistentVolumeClaim.claimName. Om du har uppdaterat sökvägsnamnet från edgeSubvolume.yamlexampleSubDir måste rad 33 uppdateras med det nya sökvägsnamnet. Parametern spec.replicas avgör hur många replikpoddar som ska skapas. Det är 2 i det här exemplet, men kan ändras för att passa dina behov:

    Kommentar

    Använd endast gemener och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt.

    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/acsaingesttestfile count=16 bs=1M && while true; do ls /data &>/dev/null || break; sleep 1; done"
              volumeMounts:
                ### This name must match the volumes.name attribute below ###
                - 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 (Line 5)
                claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
    
  2. Om du vill tillämpa deploymentExample.yamlkör du:

    kubectl apply -f "deploymentExample.yaml"
    
  3. Använd kubectl get pods för att hitta namnet på din podd. Kopiera det här namnet som ska användas i nästa steg.

    Kommentar

    Eftersom spec.replicas från deploymentExample.yaml har angetts som 2visas två poddar med .kubectl get pods Du kan välja vilket poddnamn som ska användas för nästa steg.

  4. Kör följande kommando och ersätt POD_NAME_HERE med det kopierade värdet från det senaste steget:

    kubectl exec -it POD_NAME_HERE -- sh
    
  5. Ändra kataloger till monteringssökvägen /data enligt angiven från din deploymentExample.yaml.

  6. Du bör se en katalog med det namn som du angav som i path steg 2 i avsnittet Koppla delvolym till Edge-volym . Ändra kataloger till /YOUR_PATH_NAME_HEREoch ersätt YOUR_PATH_NAME_HERE värdet med din information.

  7. Skapa till exempel en fil med namnet file1.txt och skriv till den med hjälp av echo "Hello World" > file1.txt.

  8. I Azure Portal navigerar du till ditt lagringskonto och letar reda på containern som angetts från steg 2 i Koppla delvolym till Edge-volym. När du väljer din container bör du hitta file1.txt ifylld i containern. Om filen inte har dykt upp ännu väntar du ungefär 1 minut. Edge-volymer väntar en minut innan de laddas upp.

Nästa steg

När du har slutfört de här stegen kan du börja övervaka distributionen med Azure Monitor och Kubernetes Monitoring eller övervakning från tredje part med Prometheus och Grafana.

Övervaka distributionen