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
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.
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
- Gå till det Arc-anslutna klustret.
- Välj Tillägg.
- Välj din Azure Container Storage aktiverad av Azure Arc-tillägget.
- 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
- Gå till lagringskontot i Azure Portal.
- 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 ett cloud Ingest Persistent Volume Claim (PVC)
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 radendeploymentExample.yaml
i i nästa steg.metadata.namespace
Uppdatera även värdet med din avsedda förbrukningspodd. Om du inte har en avsedd förbrukningspoddmetadata.namespace
ärdefault
värdet . Parameternspec.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
Om du vill tillämpa
cloudIngestPVC.yaml
kö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:
Hämta namnet på din Ingest Edge-volym med hjälp av följande kommando:
kubectl get edgevolumes
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 avkubectl 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 ideploymentExample.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änkenstorageaccountendpoint
under properties.primaryEndpoints.blob. Kopiera hela länken; till exempelhttps://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
Om du vill tillämpa
edgeSubvolume.yaml
kör du:kubectl apply -f "edgeSubvolume.yaml"
Valfritt: Ändra ingestPolicy
från standardvärdet
Om du vill ändra
ingestPolicy
från standardvärdetedgeingestpolicy-default
skapar du en fil med namnetmyedgeingest-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 ispec.ingestPolicy
dinedgeSubvolume.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.
Om du vill tillämpa
myedgeingest-policy.yaml
kör du:kubectl apply -f "myedgeingest-policy.yaml"
Bifoga din app (kubernetes-inbyggt program)
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ånedgeSubvolume.yaml
exampleSubDir
måste rad 33 uppdateras med det nya sökvägsnamnet. Parameternspec.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>
Om du vill tillämpa
deploymentExample.yaml
kör du:kubectl apply -f "deploymentExample.yaml"
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åndeploymentExample.yaml
har angetts som2
visas två poddar med .kubectl get pods
Du kan välja vilket poddnamn som ska användas för nästa steg.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
Ändra kataloger till monteringssökvägen
/data
enligt angiven från dindeploymentExample.yaml
.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_HERE
och ersättYOUR_PATH_NAME_HERE
värdet med din information.Skapa till exempel en fil med namnet
file1.txt
och skriv till den med hjälp avecho "Hello World" > file1.txt
.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.