Sdílet prostřednictvím


Připojení aplikace

Tento článek předpokládá, že jste vytvořili trvalý svazek (PV) a trvalou deklaraci svazku (PVC). Informace o vytvoření pv naleznete v tématu Vytvoření trvalého svazku. Informace o vytvoření PVC naleznete v tématu Vytvoření trvalé deklarace svazku.

Přidání svazků mezipaměti do podů aio-dp-runner-worker-0

Tyto pody jsou součástí stavové sady. Stavovou sadu nemůžete upravit a přidat přípojné body. Místo toho postupujte takto:

  1. Výpis stavové sady do yaml:

    kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
    
  2. Upravte stavovou sadu tak, aby zahrnovala nová připojení svazků mezipaměti do svazků volumeMounts a svazků:

    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. Odstraňte existující stavovou sadu:

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

    Tím se odstraní všechny aio-dp-runner-worker-n pody. Jedná se o událost na úrovni výpadku.

  4. Vytvořte novou stavovou sadu pracovních procesů aio-dp-runner-worker s připojenými svazky mezipaměti:

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

    Když se aio-dp-runner-worker-n pody spustí, zahrnují připojení ke svazkům mezipaměti. PVC by to měl vyjádřit ve stavu.

  5. Jakmile pracovní procesy zpracovatele dat překonfigurujete tak, aby měly přístup ke svazkům mezipaměti, musíte ručně aktualizovat konfiguraci kanálu tak, aby používala místní cestu odpovídající připojenému umístění svazku mezipaměti na pracovních podech.

    Chcete-li upravit kanál, použijte kubectl edit pipeline <name of your pipeline>. V tomto kanálu nahraďte výstupní fázi následujícím 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
    

Konfigurace nativní aplikace Kubernetes

  1. Chcete-li nakonfigurovat obecný jeden pod (nativní aplikace Kubernetes) proti trvalé deklaraci identity svazku (PVC), vytvořte soubor s názvem configPod.yaml s následujícím obsahem:

    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
    

    Poznámka:

    Pokud používáte vlastní obor názvů, všechny budoucí kubectl příkazy vyžadují -n YOUR_NAMESPACE připojení k příkazu. Například je nutné použít kubectl get pods -n YOUR_NAMESPACE místo standardního kubectl get pods.

  2. Pokud chcete použít tento soubor .yaml, spusťte následující příkaz:

    kubectl apply -f "configPod.yaml"
    
  3. Slouží kubectl get pods k vyhledání názvu podu. Zkopírujte tento název, protože ho potřebujete pro další krok.

  4. Spusťte následující příkaz a nahraďte POD_NAME_HERE zkopírovanou hodnotou z předchozího kroku:

    kubectl exec -it POD_NAME_HERE -- bash
    
  5. Změňte adresáře na /mnt/blob cestu připojení, jak je uvedeno v adresáři .configPod.yaml

  6. Například pro zápis souboru spusťte touch file.txt.

  7. Na webu Azure Portal přejděte do svého účtu úložiště a vyhledejte kontejner. Jedná se o stejný kontejner, který jste zadali v pv.yaml souboru. Když vyberete kontejner, zobrazí file.txt se v kontejneru vyplněný.

Další kroky

Po dokončení těchto kroků začněte monitorovat nasazení pomocí služby Azure Monitor a monitorování Kubernetes nebo monitorování třetích stran pomocí nástroje Prometheus a Grafana:

Monitorování třetích stran