다음을 통해 공유


애플리케이션 연결

이 문서에서는 PV(영구 볼륨) 및 PVC(영구 볼륨 클레임)를 만들었다고 가정합니다. PV 만들기에 대한 자세한 내용은 영구 볼륨 만들기를 참조하세요. PVC 만들기에 대한 자세한 내용은 영구 볼륨 클레임 만들기를 참조하세요.

aio-dp-runner-worker-0 Pod에 캐시 볼륨 추가

이러한 Pod는 statefulSet의 일부입니다. 탑재 지점을 추가하도록 statefulSet를 편집할 수는 없습니다. 대신 다음 절차를 따릅니다.

  1. statefulSet을 yaml에 덤프합니다.

    kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
    
  2. volumeMounts 및 volumes의 캐시 볼륨에 대한 새 탑재를 포함하도록 statefulSet을 편집합니다.

    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. 기존 statefulSet를 삭제합니다.

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

    그러면 모든 aio-dp-runner-worker-n Pod가 삭제됩니다. 이는 가동 중단 수준 이벤트입니다.

  4. 캐시 볼륨 탑재를 사용하여 aio-dp-runner-worker의 새로운 statefulSet을 만듭니다.

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

    aio-dp-runner-worker-n Pod가 시작되면 캐시 볼륨에 탑재가 포함됩니다. PVC는 이를 상태로 전달해야 합니다.

  5. 데이터 프로세서 작업자가 캐시 볼륨에 액세스할 수 있도록 다시 구성한 후에는 작업자 POD에서 캐시 볼륨의 탑재된 위치에 해당하는 로컬 경로를 사용하도록 파이프라인 구성을 수동으로 업데이트해야 합니다.

    파이프라인을 수정하려면 kubectl edit pipeline <name of your pipeline>을 사용합니다. 해당 파이프라인에서 출력 스테이지를 다음 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
    

Kubernetes 네이티브 애플리케이션 구성

  1. PVC(영구 볼륨 클레임)에 대해 제네릭 단일 Pod(Kubernetes 네이티브 애플리케이션)를 구성하려면 다음 내용이 포함된 configPod.yaml이라는 파일을 만듭니다.

    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
    

    참고 항목

    고유한 네임스페이스를 사용하는 경우 이후의 모든 kubectl 명령을 -n YOUR_NAMESPACE 명령에 추가해야 합니다. 예를 들어 표준 kubectl get pods 대신 kubectl get pods -n YOUR_NAMESPACE를 사용해야 합니다.

  2. 이 .yaml 파일을 적용하려면 다음 명령을 실행합니다.

    kubectl apply -f "configPod.yaml"
    
  3. Pod의 이름을 확인하려면 kubectl get pods를 사용합니다. 다음 단계에서 필요하므로 이 이름을 복사합니다.

  4. 다음 명령을 실행하고 POD_NAME_HERE를 이전 단계에서 복사한 값으로 바꿉니다.

    kubectl exec -it POD_NAME_HERE -- bash
    
  5. configPod.yaml에 지정된 대로 디렉터리를 /mnt/blob 탑재 경로로 변경합니다.

  6. 예를 들어 파일을 작성하려면 touch file.txt을 실행합니다.

  7. Azure Portal에서 스토리지 계정으로 이동하고 컨테이너를 찾습니다. 이는 pv.yaml 파일에 지정한 것과 동일한 컨테이너입니다. 컨테이너를 선택하면 컨테이너 내에 채워진 file.txt가 표시됩니다.

다음 단계

이러한 단계를 완료한 후 Prometheus 및 Grafana와 함께 Azure Monitor 및 Kubernetes 모니터링 또는 타사 모니터링을 사용하여 배포 모니터링을 시작합니다.

타사 모니터링