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:
Výpis stavové sady do yaml:
kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
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
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.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.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
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žítkubectl get pods -n YOUR_NAMESPACE
místo standardníhokubectl get pods
.Pokud chcete použít tento soubor .yaml, spusťte následující příkaz:
kubectl apply -f "configPod.yaml"
Slouží
kubectl get pods
k vyhledání názvu podu. Zkopírujte tento název, protože ho potřebujete pro další krok.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
Změňte adresáře na
/mnt/blob
cestu připojení, jak je uvedeno v adresáři .configPod.yaml
Například pro zápis souboru spusťte
touch file.txt
.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: