Volumi Edge condivisi locali
Questo articolo descrive la configurazione di Volumi Edge condivisi locali (archiviazione locale a disponibilità elevata e durevole).
Che cos'è un volume Edge condiviso locale?
La funzionalità Volumi Edge condivisi locali offre una risorsa di archiviazione a disponibilità elevata e con supporto per il failover, locale nel cluster Kubernetes. Questo tipo di archiviazione condivisa rimane indipendente dall'infrastruttura cloud, rendendola ideale per l’area di programmazione gratuita, l'archiviazione temporanea e i dati persistenti a livello locale che potrebbero non essere adatti alle destinazioni cloud.
Creare un'attestazione di volume persistente (PVC) dei Volumi Edge condivisi locali e configurare un pod rispetto al PVC
Creare un file denominato
localSharedPVC.yaml
con il contenuto seguente. Modificare il valoremetadata.name
con un nome per l'attestazione di volume persistente. Quindi, nella riga 8, specificare lo spazio dei nomi corrispondente al pod di utilizzo previsto. Si fa riferimento al valoremetadata.name
nell'ultima riga dideploymentExample.yaml
nel passaggio successivo. Il parametrospec.resources.requests.storage
determina le dimensioni del volume persistente. In questo esempio è da 2 GB, ma può essere modificato per soddisfare le esigenze degli utenti:Nota
Usare solo lettere minuscole e trattini. Per altre informazioni, vedere la documentazione sulla denominazione degli oggetti Kubernetes.
kind: PersistentVolumeClaim apiVersion: v1 metadata: ### Create a name for your PVC ### name: <create-a-pvc-name-here> ### Use a namespace that matches your intended consuming pod, or "default" ### namespace: <intended-consuming-pod-or-default-here> spec: accessModes: - ReadWriteMany resources: requests: storage: 2Gi storageClassName: unbacked-sc
Creare un file denominato
deploymentExample.yaml
con il contenuto seguente. Aggiungere i valori percontainers.name
evolumes.persistentVolumeClaim.claimName
. Il parametrospec.replicas
determina il numero di pod di replica da creare. In questo esempio è 2, ma può essere modificato per soddisfare le esigenze degli utenti:Nota
Usare solo lettere minuscole e trattini. Per altre informazioni, vedere la documentazione sulla denominazione degli oggetti Kubernetes.
apiVersion: apps/v1 kind: Deployment metadata: name: localsharededgevol-deployment ### This will need to be unique for every volume you choose to create spec: replicas: 2 selector: matchLabels: name: wyvern-testclientdeployment template: metadata: name: wyvern-testclientdeployment labels: name: wyvern-testclientdeployment spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - wyvern-testclientdeployment topologyKey: kubernetes.io/hostname containers: ### Specify the container in which to launch the busy box. ### - name: <create-a-container-name-here> image: 'mcr.microsoft.com/mirror/docker/library/busybox:1.35' command: - "/bin/sh" - "-c" - "dd if=/dev/urandom of=/data/acsalocalsharedtestfile count=16 bs=1M && while true; do ls /data &>/dev/null || break; sleep 1; done" volumeMounts: ### This name must match the following volumes::name attribute ### - name: wyvern-volume ### This mountPath is where the PVC will be attached to the pod's filesystem ### mountPath: /data volumes: ### User-defined name that is used to link the volumeMounts. This name must match volumeMounts::name as previously specified. ### - name: wyvern-volume persistentVolumeClaim: ### This claimName must refer to your PVC metadata::name from lsevPVC.yaml. claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
Per applicare questi file YAML, attenersi alla procedura seguente:
kubectl apply -f "localSharedPVC.yaml" kubectl apply -f "deploymentExample.yaml"
Eseguire
kubectl get pods
per trovare il nome del pod. Copiare questo nome, poiché è necessario nel passaggio successivo.Nota
Poiché
spec::replicas
dadeploymentExample.yaml
è stato specificato come2
, vengono visualizzati due pod tramitekubectl get pods
. È possibile scegliere uno dei nomi dei pod da usare per il passaggio successivo.Eseguire il comando seguente e sostituire
POD_NAME_HERE
con il valore copiato dal passaggio precedente:kubectl exec -it pod_name_here -- sh
Modificare le directory nel percorso di montaggio
/data
, come specificato indeploymentExample.yaml
.Ad esempio, creare un file denominato
file1.txt
e scrivere su di esso usandoecho "Hello World" > file1.txt
.
Dopo aver completato i passaggi precedenti, è possibile iniziare a monitorare la distribuzione usando Monitoraggio di Azure e Monitoraggio di Kubernetes o il monitoraggio di terze parti con Prometheus e Grafana.