Dela via


Konfigurera lokala delade volymer

Den här artikeln beskriver hur du konfigurerar lokala delade gränsvolymer (högtillgänglig, beständig lokal lagring) i Azure Container Storage som aktiveras av Azure Arc.

Skapa ett beständigt volymanspråk för lokala delade kantvolymer (PVC) och konfigurera en podd mot PVC

  1. Skapa en fil med namnet localSharedPVC.yaml med följande innehåll. Ändra värdet metadata.name med ett namn för din Persistent Volume Claim. Sedan, på rad 8, anger du namnrymden som matchar den avsedda podden som konsumerar. Värdet metadata.name refereras till på den sista raden deploymentExample.yaml i i nästa steg. Parametern spec.resources.requests.storage avgör storleken på den beständiga volymen. Det är 2 GB i det här exemplet, men kan ändras så att det passar dina behov:

    Anmärkning

    Använd endast gemena bokstäver och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt.

    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. Skapa en fil med namnet deploymentExample.yaml med följande innehåll. Lägg till värden för containers.name och volumes.persistentVolumeClaim.claimName. Parametern spec.replicas avgör hur många replikpoddar som ska skapas. Det är 2 i det här exemplet, men kan ändras för att passa dina behov:

    Anmärkning

    Använd endast gemena bokstäver och bindestreck. Mer information finns i dokumentationen om namngivning av Kubernetes-objekt.

    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. Om du vill tillämpa dessa YAML-filer kör du:

    kubectl apply -f "localSharedPVC.yaml"
    kubectl apply -f "deploymentExample.yaml"
    
  4. Kör kubectl get pods för att hitta namnet på din podd. Kopiera det här namnet så att du kan använda det i nästa steg.

    Anmärkning

    Eftersom spec::replicas från deploymentExample.yaml har angetts som 2, visas två poddar som använder kubectl get pods. Du kan välja vilket poddnamn som ska användas för nästa steg.

  5. Kör följande kommando och ersätt POD_NAME_HERE med det kopierade värdet från föregående steg:

    kubectl exec -it pod_name_here -- sh
    
  6. Ändra kataloger till monteringssökvägen enligt beskrivningen /data i deploymentExample.yaml.

  7. Skapa till exempel en fil med namnet file1.txt och skriv till den med hjälp av echo "Hello World" > file1.txt.

När du har slutfört föregående steg börjar du övervaka distributionen med Azure Monitor och Kubernetes Monitoring eller andra övervakningsverktyg som Prometheus eller Grafana.

Nästa steg

Övervaka distributionen av Edge-volymer