Condividi tramite


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

  1. Creare un file denominato localSharedPVC.yaml con il contenuto seguente. Modificare il valore metadata.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 valore metadata.name nell'ultima riga di deploymentExample.yaml nel passaggio successivo. Il parametro spec.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
    
  2. Creare un file denominato deploymentExample.yaml con il contenuto seguente. Aggiungere i valori per containers.name e volumes.persistentVolumeClaim.claimName. Il parametro spec.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>
    
  3. Per applicare questi file YAML, attenersi alla procedura seguente:

    kubectl apply -f "localSharedPVC.yaml"
    kubectl apply -f "deploymentExample.yaml"
    
  4. Eseguire kubectl get pods per trovare il nome del pod. Copiare questo nome, poiché è necessario nel passaggio successivo.

    Nota

    Poiché spec::replicas da deploymentExample.yaml è stato specificato come 2, vengono visualizzati due pod tramite kubectl get pods. È possibile scegliere uno dei nomi dei pod da usare per il passaggio successivo.

  5. Eseguire il comando seguente e sostituire POD_NAME_HERE con il valore copiato dal passaggio precedente:

    kubectl exec -it pod_name_here -- sh
    
  6. Modificare le directory nel percorso di montaggio /data, come specificato in deploymentExample.yaml.

  7. Ad esempio, creare un file denominato file1.txt e scrivere su di esso usando echo "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.

Passaggi successivi

Monitorare la distribuzione