Aracılığıyla paylaş


Uygulamanızı ekleme (önizleme)

Bu makalede, Kalıcı Birim (PV) ve Kalıcı Birim Talebi (PVC) oluşturduğunuz varsayılır. PV oluşturma hakkında bilgi için bkz . Kalıcı birim oluşturma. PVC oluşturma hakkında bilgi için bkz . Kalıcı Birim Talebi Oluşturma.

Azure IoT İşlemleri veri işlemcisini yapılandırma

Azure IoT İşlemlerini (AIO) kullandığınızda, Veri İşlemcisi Edge Depolama Hızlandırıcısı için herhangi bir bağlama olmadan oluşturulur. Aşağıdaki görevleri gerçekleştirebilirsiniz:

  • Daha önce oluşturduğunuz Edge Depolama Hızlandırıcısı PVC için bir bağlama ekleyin.
  • Tüm işlem hatlarının çıkış aşamasını, yeni oluşturduğunuz Edge Depolama Hızlandırıcısı bağlamasına çıkış olarak yeniden yapılandırın.

aio-dp-runner-worker-0 podlarınıza Edge Depolama Hızlandırıcısı ekleme

Bu podlar statefulSet'in bir parçasıdır. Bağlama noktaları eklemek için statefulSet'i yerinde düzenleyemezsiniz. Bunun yerine şu yordamı izleyin:

  1. statefulSet'i yaml'ye dökümünü al:

    kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
    
  2. statefulSet'i, volumeMounts ve birimlere ESA için yeni bağlamaları içerecek şekilde düzenleyin:

    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. Mevcut statefulSet'i silin:

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

    Bu işlem tüm aio-dp-runner-worker-n podları siler. Bu bir kesinti düzeyi olayıdır.

  4. ESA bağlamalarıyla yeni bir statefulSet of aio-dp-runner-worker(lar) oluşturun:

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

    aio-dp-runner-worker-n Podlar başladığında, ESA'ya bağlamalar ekler. PVC bu durumu iletmelidir.

  5. Veri İşlemcisi çalışanlarınızı ESA birimlerine erişimi olacak şekilde yeniden yapılandırdıktan sonra, çalışan POD'lerinde ESA biriminizin bağlı konumuna karşılık gelen yerel bir yol kullanmak için işlem hattı yapılandırmasını el ile güncelleştirmeniz gerekir.

    İşlem hattını değiştirmek için kullanın kubectl edit pipeline <name of your pipeline>. Bu işlem hattında çıkış aşamanızı aşağıdaki YAML ile değiştirin:

    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
    

Kubernetes yerel uygulamasını yapılandırma

  1. Kalıcı Birim Talebine (PVC) karşı genel bir tek pod (Kubernetes yerel uygulaması) yapılandırmak için, aşağıdaki içeriklere sahip adlı configPod.yaml bir dosya oluşturun:

    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
    

    Not

    Kendi ad alanınızı kullanıyorsanız, gelecekteki kubectl tüm komutların komutuna eklenmesi gerekir -n YOUR_NAMESPACE . Örneğin, standart kubectl get podsyerine kullanmanız kubectl get pods -n YOUR_NAMESPACE gerekir.

  2. Bu .yaml dosyasını uygulamak için aşağıdaki komutu çalıştırın:

    kubectl apply -f "configPod.yaml"
    
  3. Podunuzun adını bulmak için kullanın kubectl get pods . Sonraki adımda ihtiyacınız olduğu için bu adı kopyalayın.

  4. Aşağıdaki komutu çalıştırın ve değerini önceki adımda kopyalanan değerinizle değiştirin POD_NAME_HERE :

    kubectl exec -it POD_NAME_HERE -- bash
    
  5. Dizinleri /mnt/blob , içinden configPod.yamlbelirtildiği gibi bağlama yoluna değiştirin.

  6. Örneğin, bir dosya yazmak için komutunu çalıştırın touch file.txt.

  7. Azure portalında depolama hesabınıza gidin ve kapsayıcıyı bulun. Bu, dosyanızda pv.yaml belirttiğiniz kapsayıcıyla aynıdır. Kapsayıcınızı seçtiğinizde kapsayıcının içinde doldurulmuş ifadesini görürsünüz file.txt .

Sonraki adımlar

Bu adımları tamamladıktan sonra Azure İzleyici ve Kubernetes İzleme'yi veya Prometheus ve Grafana ile üçüncü taraf izlemeyi kullanarak dağıtımınızı izlemeye başlayın:

Üçüncü taraf izleme