Dołączanie aplikacji
W tym artykule założono, że utworzono wolumin trwały (PV) i trwałe oświadczenie woluminu (PVC). Aby uzyskać informacje o tworzeniu pv, zobacz Tworzenie woluminu trwałego. Aby uzyskać informacje na temat tworzenia pcv, zobacz Tworzenie trwałego oświadczenia woluminu.
Dodawanie woluminów pamięci podręcznej do zasobników aio-dp-runner-worker-0
Te zasobniki są częścią stanowego zestawu. Nie można edytować zestawu stanowego w celu dodania punktów instalacji. Zamiast tego wykonaj następującą procedurę:
Dump the statefulSet to yaml:
kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
Edytuj stanowy zestaw, aby uwzględnić nowe instalacji woluminów pamięci podręcznej w woluminach i woluminach:
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
Usuń istniejący stanowyset:
kubectl delete statefulset -n azure-iot-operations aio-dp-runner-worker
Spowoduje to usunięcie wszystkich
aio-dp-runner-worker-n
zasobników. Jest to zdarzenie na poziomie awarii.Utwórz nowy stanowy zestaw procesów roboczych aio-dp-runner-worker za pomocą instalacji woluminów pamięci podręcznej:
kubectl apply -f stateful_worker.yaml -n azure-iot-operations
Po uruchomieniu
aio-dp-runner-worker-n
zasobników dołączają one instalację do woluminów pamięci podręcznej. PCV powinien przekazać to w stanie.Po ponownym skonfigurowaniu procesów roboczych przetwarzania danych w celu uzyskania dostępu do woluminów pamięci podręcznej należy ręcznie zaktualizować konfigurację potoku, aby użyć ścieżki lokalnej odpowiadającej zainstalowanej lokalizacji woluminu pamięci podręcznej na dyskach POD procesu roboczego.
Aby zmodyfikować potok, użyj polecenia
kubectl edit pipeline <name of your pipeline>
. W tym potoku zastąp etap danych wyjściowych następującym kodem 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
Konfigurowanie aplikacji natywnej kubernetes
Aby skonfigurować ogólny pojedynczy zasobnik (aplikacja natywna Kubernetes) względem oświadczenia trwałego woluminu (PVC), utwórz plik o nazwie o
configPod.yaml
następującej zawartości: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
Uwaga
Jeśli używasz własnej przestrzeni nazw, wszystkie przyszłe
kubectl
polecenia wymagają-n YOUR_NAMESPACE
dołączenia do polecenia . Na przykład należy użyćkubectl get pods -n YOUR_NAMESPACE
zamiast standardowegokubectl get pods
.Aby zastosować ten plik yaml, uruchom następujące polecenie:
kubectl apply -f "configPod.yaml"
Użyj polecenia
kubectl get pods
, aby znaleźć nazwę zasobnika. Skopiuj tę nazwę, ponieważ jest ona potrzebna do następnego kroku.Uruchom następujące polecenie i zastąp
POD_NAME_HERE
wartość skopiowaną z poprzedniego kroku:kubectl exec -it POD_NAME_HERE -- bash
Zmień katalogi na ścieżkę
/mnt/blob
instalacji, jak określono z plikuconfigPod.yaml
.Aby na przykład napisać plik, uruchom polecenie
touch file.txt
.W witrynie Azure Portal przejdź do konta magazynu i znajdź kontener. Jest to ten sam kontener, który został określony w
pv.yaml
pliku. Po wybraniu kontenera zobaczyszfile.txt
wypełnione w kontenerze.
Następne kroki
Po wykonaniu tych kroków rozpocznij monitorowanie wdrożenia przy użyciu usług Azure Monitor i Kubernetes Monitoring lub monitorowania innych firm przy użyciu rozwiązań Prometheus i Grafana: