Dela via


Bifoga ditt program (förhandsversion)

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.

Konfigurera Dataprocessorn för Azure IoT Operations

När du använder Azure IoT Operations (AIO) skapas dataprocessorn utan monteringar för Edge Storage Accelerator. Du kan utföra följande uppgifter:

  • Lägg till en montering för Edge Storage Accelerator PVC som du skapade tidigare.
  • Konfigurera om alla pipelines utdatasteg till utdata till Edge Storage Accelerator-monteringen som du nyss skapade.

Lägg till Edge Storage Accelerator 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:

  1. Dumpa statefulSet till yaml:

    kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
    
  2. Redigera statefulSet för att inkludera de nya monteringarna för ESA 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
    
  3. 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å.

  4. Skapa en ny statefulSet av aio-dp-runner-worker(s) med ESA-monteringarna:

    kubectl apply -f stateful_worker.yaml -n azure-iot-operations
    

    aio-dp-runner-worker-n När poddarna startar inkluderar de monteringar till ESA. PVC bör förmedla detta i tillståndet.

  5. När du har konfigurerat om databehandlingsarbetarna så att de har åtkomst till ESA-volymerna måste du manuellt uppdatera pipelinekonfigurationen så att den använder en lokal sökväg som motsvarar den monterade platsen för DIN ESA-volym 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

  1. 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 framtida kubectl kommandon läggas till i kommandot. Du måste till exempel använda kubectl get pods -n YOUR_NAMESPACE i stället för standard kubectl get pods.

  2. Kör följande kommando för att tillämpa den här .yaml-filen:

    kubectl apply -f "configPod.yaml"
    
  3. 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.

  4. 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
    
  5. Ändra kataloger till monteringssökvägen /mnt/blob enligt angiven från din configPod.yaml.

  6. Om du till exempel vill skriva en fil kör du touch file.txt.

  7. I Azure-portalen går 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 visas file.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:

Övervakning från tredje part