Bifoga ditt program
Den här artikeln förutsätter att du har skapat en beständig volym (PV) och ett beständigt volymanspråk (PVC). Information om hur du skapar en PV finns i Skapa en beständiga volym. Information om hur du skapar en PVC finns i Skapa ett beständiga volymanspråk.
Lägg till cachevolymer i dina aio-dp-runner-worker-0-poddar
Dessa poddar är en del av en statefulSet. Du kan inte redigera statefulSet på plats för att lägga till monteringspunkter. Följ i stället den här proceduren:
Dumpa statefulSet till yaml:
kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
Redigera statefulSet för att inkludera de nya monteringarna för cachevolymer i volumeMounts och volymer:
volumeMounts: - mountPath: /etc/bluefin/config name: config-volume readOnly: true - mountPath: /var/lib/bluefin/registry name: nfs-volume - mountPath: /var/lib/bluefin/local name: runner-local ### Add the next 2 lines ### - mountPath: /mnt/esa name: esa4 volumes: - configMap: defaultMode: 420 name: file-config name: config-volume - name: nfs-volume persistentVolumeClaim: claimName: nfs-provisioner ### Add the next 3 lines ### - name: esa4 persistentVolumeClaim: claimName: esa4
Ta bort den befintliga tillståndskänsligauppsättningen:
kubectl delete statefulset -n azure-iot-operations aio-dp-runner-worker
Detta tar bort alla
aio-dp-runner-worker-n
poddar. Det här är en händelse på avbrottsnivå.Skapa en ny statefulSet av aio-dp-runner-worker(s) med cachevolymerna:
kubectl apply -f stateful_worker.yaml -n azure-iot-operations
aio-dp-runner-worker-n
När poddarna startar inkluderar de monteringar till cachevolymer. PVC bör förmedla detta i tillståndet.När du har konfigurerat om dataprocessorarbetarna så att de har åtkomst till cachevolymerna måste du manuellt uppdatera pipelinekonfigurationen så att den använder en lokal sökväg som motsvarar den monterade platsen för cachevolymen på arbets-POD:erna.
Om du vill ändra pipelinen använder du
kubectl edit pipeline <name of your pipeline>
. I den pipelinen ersätter du utdatasteget med följande YAML:output: batch: path: .payload time: 60s description: An example file output stage displayName: Sample File output filePath: '{{{instanceId}}}/{{{pipelineId}}}/{{{partitionId}}}/{{{YYYY}}}/{{{MM}}}/{{{DD}}}/{{{HH}}}/{{{mm}}}/{{{fileNumber}}}' format: type: jsonStream rootDirectory: /mnt/esa type: output/file@v1
Konfigurera ett inbyggt Kubernetes-program
Om du vill konfigurera en allmän enskild podd (kubernetes-inbyggt program) mot PVC (Persistent Volume Claim) skapar du en fil med namnet
configPod.yaml
med följande innehåll:kind: Deployment apiVersion: apps/v1 metadata: name: example-static labels: app: example-static ### Uncomment the next line and add your namespace only if you are not using the default namespace (if you are using azure-iot-operations) as specified from Line 6 of your pvc.yaml. If you are not using the default namespace, all future kubectl commands require "-n YOUR_NAMESPACE" to be added to the end of your command. # namespace: YOUR_NAMESPACE spec: replicas: 1 selector: matchLabels: app: example-static template: metadata: labels: app: example-static spec: containers: - image: mcr.microsoft.com/cbl-mariner/base/core:2.0 name: mariner command: - sleep - infinity volumeMounts: ### This name must match the 'volumes.name' attribute in the next section. ### - name: blob ### This mountPath is where the PVC is attached to the pod's filesystem. ### mountPath: "/mnt/blob" volumes: ### User-defined 'name' that's used to link the volumeMounts. This name must match 'volumeMounts.name' as specified in the previous section. ### - name: blob persistentVolumeClaim: ### This claimName must refer to the PVC resource 'name' as defined in the PVC config. This name must match what your PVC resource was actually named. ### claimName: YOUR_CLAIM_NAME_FROM_YOUR_PVC
Kommentar
Om du använder ditt eget namnområde måste
-n YOUR_NAMESPACE
alla framtidakubectl
kommandon läggas till i kommandot. Du måste till exempel användakubectl get pods -n YOUR_NAMESPACE
i stället för standardkubectl get pods
.Kör följande kommando för att tillämpa den här .yaml-filen:
kubectl apply -f "configPod.yaml"
Använd
kubectl get pods
för att hitta namnet på din podd. Kopiera det här namnet eftersom du behöver det för nästa steg.Kör följande kommando och ersätt
POD_NAME_HERE
med det kopierade värdet från föregående steg:kubectl exec -it POD_NAME_HERE -- bash
Ändra kataloger till monteringssökvägen
/mnt/blob
enligt angiven från dinconfigPod.yaml
.Om du till exempel vill skriva en fil kör du
touch file.txt
.I Azure Portal navigerar du till ditt lagringskonto och letar reda på containern. Det här är samma container som du angav i
pv.yaml
filen. När du väljer din container visasfile.txt
ifylld i containern.
Nästa steg
När du har slutfört de här stegen börjar du övervaka distributionen med Azure Monitor och Kubernetes Monitoring eller övervakning från tredje part med Prometheus och Grafana: