Compartilhar via


Anexar seu aplicativo

Este artigo pressupõe que você criou um Volume Persistente (PV) e uma Declaração de Volume Persistente (PVC). Para informações sobre como criar um PV, veja Criar um volume persistente. Para informações sobre como criar uma PVC, veja Criar uma Declaração de Volume Persistente.

Adicionar o Cache Volumes aos seus pods aio-dp-runner-worker-0

Esses pods são parte de um statefulSet. Você não pode editar o statefulSet diretamente para adicionar pontos de montagem. Em vez disso, siga este procedimento:

  1. Faça o backup o statefulSet para um arquivo yaml:

    kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
    
  2. Edite o statefulSet para incluir os novos pontos de montagem para o Cache Volumes em volumeMounts e volumes:

    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. Exclua o statefulSet existente:

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

    Isso exclui todos os pods aio-dp-runner-worker-n. Este é um evento de nível de interrupção do serviço.

  4. Crie um novo statefulSet de aio-dp-runner-worker(s) com montagens do Cache Volumes:

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

    Quando os pods aio-dp-runner-worker-n iniciarem, eles incluirão as montagens para o Cache Volumes. A PVC deve refletir isso no estado.

  5. Após reconfigurar os trabalhos do Processador de Dados para acessar o Cache Volumes, atualize manualmente a configuração do pipeline para usar um caminho local que corresponda ao local montado do seu Cache Volumes nos PODs de trabalho.

    Para modificar o pipeline, use kubectl edit pipeline <name of your pipeline>. Nesse pipeline, substitua a fase de saída pelo seguinte 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
    

Configurar um aplicativo nativo do Kubernetes

  1. Para configurar um aplicativo nativo do Kubernetes genérico em um único pod em relação à Declaração de Volume Persistente (PVC), crie um arquivo chamado configPod.yaml com os seguintes conteúdos:

    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
    

    Observação

    Se você estiver usando seu próprio namespace, todos os comandos kubectl futuros precisarão que -n YOUR_NAMESPACE seja adicionado ao comando. Por exemplo, você deve usar kubectl get pods -n YOUR_NAMESPACE em vez do padrão kubectl get pods.

  2. Para aplicar este arquivo .yaml, execute o comando a seguir:

    kubectl apply -f "configPod.yaml"
    
  3. Use kubectl get pods para localizar o nome do seu pod. Copie esse nome, pois você precisará dele na próxima etapa.

  4. Execute o comando a seguir e substitua POD_NAME_HERE pelo valor copiado da etapa anterior:

    kubectl exec -it POD_NAME_HERE -- bash
    
  5. Altere os diretórios para o caminho de montagem /mnt/blob conforme especificado no seu configPod.yaml.

  6. Por exemplo, para gravar um arquivo, execute touch file.txt.

  7. No portal do Azure, navegue até sua conta de armazenamento e encontre o contêiner. Esse é o mesmo contêiner que você especificou no seu arquivo pv.yaml. Ao selecionar seu contêiner, você verá file.txt preenchido dentro do contêiner.

Próximas etapas

Depois de concluir estas etapas, comece a monitorar sua implantação usando o Azure Monitor e o Monitoramento do Kubernetes, ou opte por um serviço de monitoramento de terceiros com Prometheus e Grafana:

Monitoramento de terceiros