Attacher votre application
Cet article suppose que vous avez créé un volume persistant (PV) et une revendication de volume persistant (PVC). Pour obtenir plus d’informations sur la création d’un volume persistant, consultez Créer un volume persistant. Pour obtenir plus d’informations sur la création d’une revendication de volume persistant, consultez Créer un volume persistant.
Ajouter Cache Volumes à vos pods aio-dp-runner-worker-0
Ces pods font partie d’un statefulSet. Vous ne pouvez pas modifier le statefulSet en place pour ajouter des points de montage. Suivez plutôt cette procédure :
Effectuez une copie de sauvegarde de statefulSet dans yaml :
kubectl get statefulset -o yaml -n azure-iot-operations aio-dp-runner-worker > stateful_worker.yaml
Modifiez le statefulSet afin d’inclure les nouveaux montages pour Cache Volumes dans des volumes et des volumeMounts :
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
Supprimez le statefulSet existant :
kubectl delete statefulset -n azure-iot-operations aio-dp-runner-worker
Cette opération supprime tous les pods
aio-dp-runner-worker-n
. Il s’agit d’un événement au niveau de l’interruption.Créez un statefulSet du ou des aio-dp-runner-worker avec les montages Cache Volumes :
kubectl apply -f stateful_worker.yaml -n azure-iot-operations
Quand les pods
aio-dp-runner-worker-n
démarrent, ils incluent des montages dans Cache Volumes. La PVC doit exprimer ceci dans l’état.Une fois vos Workers de processeur de données reconfigurés pour avoir accès à Cache Volumes, vous devez manuellement mettre à jour la configuration de pipeline pour utiliser un chemin d’accès local qui correspond à l’emplacement monté de votre instance Cache Volumes sur les POD de Worker.
Pour modifier le pipeline, utilisez
kubectl edit pipeline <name of your pipeline>
. Dans ce pipeline, remplacez votre phase de sortie par le YAML suivant :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
Configurer une application native Kubernetes
Pour configurez un seul pod générique (application native Kubernetes) sur la revendication de volume persistant (PVC), créez un fichier nommé
configPod.yaml
avec le contenu suivant :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
Remarque
Si vous utilisez votre propre espace de noms, toutes les commandes
kubectl
nécessitent l’ajout de-n YOUR_NAMESPACE
à la commande. Par exemple, vous devez utiliserkubectl get pods -n YOUR_NAMESPACE
au lieu dekubectl get pods
standard.Pour appliquer ce fichier .yaml, exécutez la commande suivante :
kubectl apply -f "configPod.yaml"
Utilisez
kubectl get pods
pour trouver le nom de votre pod. Copiez ce nom car vous en aurez besoin à l’étape suivante.Exécutez la commande suivante et remplacez
POD_NAME_HERE
par votre valeur copiée de l’étape précédente :kubectl exec -it POD_NAME_HERE -- bash
Modifiez les répertoires dans le chemin d’accès de montage
/mnt/blob
, comme spécifié dans votreconfigPod.yaml
.Par exemple, exécutez
touch file.txt
pour écrire un fichier.Dans le Portail Azure, accédez à votre compte de stockage et recherchez le conteneur. Il s’agit du même conteneur spécifié dans votre fichier
pv.yaml
. Lorsque vous sélectionnez votre conteneur, vous voyezfile.txt
rempli dans le conteneur.
Étapes suivantes
Une fois ces étapes effectuées, commencez à monitorer votre déploiement en utilisant Azure Monitor et Monitoring Kubernetes, ou une surveillance tierce avec Prometheus et Grafana :