Freigeben über


Anfügen Ihrer Anwendung (Vorschau)

In diesem Artikel wird davon ausgegangen, dass Sie ein persistentes Volume (PV) und einen persistenten Volumeanspruch (PVC) erstellt haben. Informationen zum Erstellen eines PV finden Sie unter Erstellen eines persistenten Volumes. Informationen zum Erstellen eines PV finden Sie unter Erstellen eines persistenten Volumeanspruchs.

Konfigurieren des Azure IoT Einsatz-Datenauftragsprozessors

Wenn Sie Azure IoT Einsatz (AIO) verwenden, wird der Datenauftragsprozessor ohne Bereitstellungen für Edge Storage Beschleuniger erzeugt. Sie können die folgenden Aufgaben ausführen:

  • Fügen Sie einen Halter für den Edge Storage Beschleuniger PVC hinzu, den Sie zuvor erstellt haben.
  • Konfigurieren Sie die Ausgabestufe aller Pipelines neu, um sie an die soeben erstellte Edge Storage Beschleuniger-Bereitstellung auszugeben.

Hinzufügen von Edge Storage Accelerator zu Ihren aio-dp-runner-worker-0-Pods

Diese Pods sind Teil eines statefulSet. Sie können das statefulSet nicht bearbeiten, um Bereitstellungspunkte hinzuzufügen. Gehen Sie stattdessen folgendermaßen vor:

  1. Übertragen Sie das statefulSet in yaml:

    kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
    
  2. Bearbeiten Sie das statefulSet so, dass die neuen Mounts für ESA in volumeMounts und Volumes enthalten sind:

    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. Löschen Sie das vorhandene statefulSet:

    kubectl delete statefulset -n azure-iot-operations aio-dp-runner-worker
    

    Dadurch werden alle aio-dp-runner-worker-n Pods gelöscht. Dies ist ein Ereignis auf Ausfallebene.

  4. Erstellen Sie eine neue statefulSet von aio-dp-runner-worker(n) mit den ESA-Mounts:

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

    Wenn die aio-dp-runner-worker-n Pods beginnen, schließen sie Mounts in die ESA ein. Das PVC sollte dies im Status vermitteln.

  5. Nachdem Sie Ihre Datenprozessorverarbeiter neu konfiguriert haben, um Zugriff auf die ESA-Volumes zu haben, müssen Sie die Pipelinekonfiguration manuell aktualisieren, um einen lokalen Pfad zu verwenden, der dem bereitgestellten Standort Ihres ESA-Volumes auf den Arbeits-PODs entspricht.

    Verwenden Sie kubectl edit pipeline <name of your pipeline>, um die Pipeline zu ändern. Ersetzen Sie in dieser Pipeline Ihre Ausgabestufe durch das folgende 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
    

Konfigurieren einer systemeigenen Kubernetes-Anwendung

  1. Erstellen Sie zum Konfigurieren eines generischen einzelnen Pods (Kubernetes native Anwendung) für den persistenten Volumeanspruch (PVC) eine Datei mit dem Namen configPod.yaml mit folgendem Inhalt:

    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
    

    Hinweis

    Wenn Sie Ihren eigenen Namespace verwenden, müssen alle zukünftigen kubectl Befehle -n YOUR_NAMESPACE an den Befehl angefügt werden. Sie müssen z. B. kubectl get pods -n YOUR_NAMESPACE anstelle des Standards kubectl get pods verwenden.

  2. Führen Sie den folgenden Befehl aus, um diese YAML-Datei anzuwenden:

    kubectl apply -f "configPod.yaml"
    
  3. Verwenden Sie kubectl get pods, um den Namen Ihres Pods zu finden. Kopieren Sie diesen Namen, da Sie ihn für den nächsten Schritt benötigen.

  4. Führen Sie den folgenden Befehl aus, und ersetzen Sie POD_NAME_HERE durch ihren kopierten Wert aus dem vorherigen Schritt:

    kubectl exec -it POD_NAME_HERE -- bash
    
  5. Ändern Sie Verzeichnisse in den /mnt/blob Bereitstellungspfad, wie in Ihrem configPod.yaml angegeben.

  6. Führen Sie beispielsweise zum Schreiben einer Datei touch file.txt aus.

  7. Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto, und suchen Sie den Container. Dies ist derselbe Container, den Sie in Ihrer pv.yaml Datei angegeben haben. Wenn Sie Ihren Container auswählen, wird file.txt im Container aufgefüllt.

Nächste Schritte

Nachdem Sie diese Schritte ausgeführt haben, beginnen Sie mit der Überwachung Ihrer Bereitstellung mit Azure Monitor und Kubernetes Monitoring oder Überwachung von Drittanbietern mit Prometheus und Grafana:

Drittanbieterüberwachung