Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du konfigurerar molninmatningsundervolym (blobuppladdning med lokal rensning) i Azure Container Storage som aktiveras av Azure Arc. En molninmatningsundervolym möjliggör obegränsad datainmatning från edge 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 ditt moln för att mata in beständigt volymanspråk (PVC) och en process kör en genomsökning för att söka efter nya filer varje minut. När filen har identifierats skickas den för uppladdning till din angivna blob-destination. Efter bekräftelse av en lyckad uppladdning väntar Cloud Ingest-delmängden i fem minuter och tar sedan bort den lokala versionen av filen.
Förutsättningar
Om slutmålet är bloblagring eller ADLSgen2 fortsätter du att följa kraven och instruktionerna i den här artikeln. Om din slutdestination är OneLake följer du först anvisningarna i Konfigurera OneLake-identitet för molndelvolymer.
- Skapa ett lagringskonto enligt anvisningarna i Skapa ett Azure-lagringskonto. - Anmärkning - När du skapar ditt lagringskonto rekommenderar vi att du skapar det under samma resursgrupp och region/plats som ditt Kubernetes-kluster. 
- Skapa en container i lagringskontot som du skapade tidigare, enligt anvisningarna i Snabbstart: Ladda upp, ladda ned och lista blobar med Azure-portalen > Skapa en container. 
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 Cloud Ingest-delvolymer till dessa lagringssystem.
Om du vill använda arbetsbelastningsidentitet med Azure Container Storage Aktiverat av Azure Arc följer du anvisningarna i Konfigurera arbetsbelastningsidentitet för molnundervolymer.
Azure-portalen
- Gå till det Arc-aktiverade klustret.
- Välj Tillägg.
- Välj din Azure Container Storage genom Azure Arc-tillägget.
- Observera princip-ID:t i Information om klustertillägg.
Konfigurera bloblagringskonto för tilläggsidentitet
Lägga till behörigheter för tilläggsidentitet till ett lagringskonto
- Gå till lagringskontot i Azure-portalen.
- Välj Access Control (IAM).
- Välj Lägg till+ –> Lägg till rolltilldelning.
- Välj Lagringsblobdataägare och välj sedan Nästa.
- Välj +Välj medlemmar.
- Om du vill lägga till ditt huvudnamns-ID i listan Valda medlemmar: klistrar du in ID:t och väljer + bredvid identiteten.
- Klicka på Välj.
- Om du vill granska och tilldela behörigheter väljer du Nästa och sedan Granska + Tilldela.
Skapa en Cloud Ingest Persistent Volume Claim (PVC)
Använd följande process för att skapa en PVC för din Ingest-undervolym:
- Skapa en fil med namnet - cloudIngestPVC.yamlmed följande innehåll:- 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- Anmärkning - Använd endast gemena bokstäver och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt. - Redigera värdet metadata.nameoch skapa ett namn för din PVC. Det här namnet refereras till på den sista raden i deploymentExample.yaml i nästa steg.
- Redigera värdet metadata.namespaceför din avsedda konsumtionspodd. Om du inte har en avsedd förbrukningspodd anger du dess värde tilldefault.
- Parametern spec.resources.requests.storageavgö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.
 
- Redigera värdet 
- Om du vill tillämpa cloudIngestPVC.yaml kör du: - kubectl apply -f "cloudIngestPVC.yaml"
Koppla inmatningsundervolume till Edge-volym
För att skapa en subvolym för Ingest, och använda tilläggsidentitet autentisering för att ansluta till din lagringskontots container, följ denna process:
- Hämta namnet på den Edge-volym som du skapade genom att köra följande kommando: - kubectl get edgevolumes
- Skapa en fil med namnet - ingestSubvolume.yamlmed följande innehåll:- apiVersion: "arccontainerstorage.azure.net/v1" kind: IngestSubvolume metadata: name: <create-a-subvolume-name-here> spec: edgevolume: <your-edge-volume-name-here> path: ingestSubDir # Don't use a preceding slash authentication: authType: MANAGED_IDENTITY storageAccountEndpoint: "https://<STORAGE ACCOUNT NAME>.blob.core.windows.net/" containerName: <your-blob-storage-account-container-name> ingest: order: newest-first minDelaySec: 60 eviction: order: unordered minDelaySec: 120 onDelete: trigger-immediate-ingest- Anmärkning - Använd endast gemena bokstäver och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt. - 
              metadata.name: Skapa ett namn för delvolymen.
- 
              spec.edgevolume: Det här namnet hämtades från föregående steg.
- 
              spec.path: Skapa ett eget underkatalognamn under monteringsvägen. Standardnamnet äringestSubDir.
- 
              spec.authentication.authType: Detta bör varaMANAGED_IDENTITYellerWORKLOAD_IDENTITY, beroende på vilken autentiseringsmekanism som valts.
- 
              spec.storageAccountEndpoint: Gå till ditt lagringskonto i Azure-portalen. På sidan Översikt väljer du JSON-vy längst upp till höger på skärmen. Du hittar länken under properties.primaryEndpoints.blob. Kopiera hela länken.
- 
              spec.containerName: Containernamnet i ditt lagringskonto.
 - Följande variabler har rimliga standardvärden, men kan ändras: - 
              spec.ingest.order: I vilken ordning smutsiga filer laddas upp. Detta är en bästa insats, inte en garanti. Alternativ för beställning är:oldest-firstellernewest-first.
- 
              spec.ingest.minDelaySec: Det minsta antalet sekunder innan en smutsig fil är berättigad till inmatning. Det här talet kan variera mellan 0 och 31536000 (ett år i sekunder).
- 
              spec.eviction.order: Hur filer tas bort när de har laddats upp till molnet. Alternativ för borttagningsordning är:unorderedellernever.
- 
              spec.eviction.minDelaySec: Antalet sekunder innan en ren fil är berättigad till borttagning. Det här talet kan variera mellan 0 och 31536000 (ett år i sekunder).
- 
              spec.onDelete: Den åtgärd som ska vidtas för denna IngestSubVolume om/när den begärs att tas bort. Alternativ ärtrigger-immediate-ingestsom omedelbart markerar alla filer som giltiga för inmatning och försöker mata in dem, ellerabandonsom kommer att lämna all data i det här inmatningsunderblocket och ta bort underblocket.
 - Anmärkning - Om du väljer att överge för ditt - spec.onDeletevärde går alla felaktiga data i delmängden förlorade. Var försiktig och uppmärksam innan du väljer detta som ett alternativ.
- 
              
- Om du vill tillämpa ingestSubvolume.yaml kör du: - kubectl apply -f "ingestSubvolume.yaml"
Bifoga din app (kubernetes-inbyggt program)
För att konfigurera en generell pod (Kubernetes-inbyggt program) mot PVC för att använda ingest-funktionerna, följ dessa steg:
- Skapa en fil med namnet - deploymentExample.yamlmed följande innehåll:- apiVersion: apps/v1 kind: Deployment metadata: name: cloudingestsubvol-deployment ### This must be unique for each deployment you choose to create. spec: replicas: 2 selector: matchLabels: name: acsa-testclientdeployment template: metadata: name: acsa-testclientdeployment labels: name: acsa-testclientdeployment spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - acsa-testclientdeployment topologyKey: kubernetes.io/hostname containers: ### Specify the container in which to launch the busy box. ### - name: ingest-deployment-container image: mcr.microsoft.com/azure-cli:2.57.0@sha256:c7c8a97f2dec87539983f9ded34cd40397986dcbed23ddbb5964a18edae9cd09 command: - "/bin/sh" - "-c" - "dd if=/dev/urandom of=/data/ingestSubDir/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: acsa-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: acsa-volume persistentVolumeClaim: ### This claimName must refer to your PVC metadata.name (Line 5) claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>- Anmärkning - Använd endast gemena bokstäver och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt. - Redigera containers.nameochvolumes.persistentVolumeClaim.claimNamevärdena.
- Om du redigerade spec.pathvärdet i edgeSubvolume.yaml måste värdetingestSubDiri den här filen uppdateras med det nya sökvägsnamnet.
- Parametern spec.replicasavgö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.
 
- Redigera 
- Om du vill använda deploymentExample.yaml och skapa podden kör du: - kubectl apply -f "deploymentExample.yaml"
- Leta reda på namnet på din podd som ska användas i nästa steg: - kubectl get pods- Anmärkning - Eftersom - spec.replicasfrån deploymentExample.yaml angavs med 2 skapas två poddar. Du kan använda endera poddnamnet för nästa steg.
- Kör följande kommando för att starta exec i podden. Ersätt - <name-of-pod>med poddnamnet från föregående steg:- kubectl exec -it <name-of-pod> -- sh
- Ändra kataloger till monteringssökvägen - /dataenligt vad som anges i din distributionExample.yaml-fil :- cd /data
- Du bör se en katalog som matchar det värde som du angav för - spec.pathingestSubvolume.yaml. Om du använde standardvärdena är dess namn ingestSubDir. Ändra till den underkatalogen:- cd ingestSubDir
- Skapa till exempel en fil med namnet - file1.txtoch skriv till den:- echo "Hello World" > file1.txt- Den här filen laddas upp till containern i ditt bloblagringskonto och rensas sedan lokalt efter fem minuter. 
- I Azure-portalen går du till ditt lagringskonto och letar reda på containern som matchar det värde som du angav för - spec.containerNamei ingestSubvolume.yaml. Du bör hitta- file1.txtifylld i containern. Om filen inte finns där ännu väntar du cirka 1 minut. Edge-volymer väntar en minut innan de laddas upp.
Nästa steg
- Mer information om hur du konfigurerar Cloud Mirror-delvolymer finns i Konfigurera Cloud Mirror-delvolymer.
- Information om hur du använder Edge-volymer tillsammans finns i Använda Edge-volymer tillsammans.