Delen via


Lokale gedeelde edge-volumes

In dit artikel wordt de configuratie voor lokale gedeelde edge-volumes (maximaal beschikbare, duurzame lokale opslag) beschreven.

Wat is een lokaal gedeeld edge-volume?

De functie Lokale gedeelde edge-volumes biedt maximaal beschikbare opslag die geschikt is voor failover, lokaal voor uw Kubernetes-cluster. Dit type gedeelde opslag blijft onafhankelijk van de cloudinfrastructuur, waardoor het ideaal is voor scratchruimte, tijdelijke opslag en lokaal persistente gegevens die mogelijk ongeschikt zijn voor cloudbestemmingen.

Maak een lokale Shared Edge Volumes Persistent Volume Claim (PVC) en configureer een pod tegen de PVC

  1. Maak een bestand met de naam localSharedPVC.yaml met de volgende inhoud. Wijzig de metadata.name waarde met een naam voor uw permanente volumeclaim. Geef vervolgens in regel 8 de naamruimte op die overeenkomt met de beoogde verbruikspod. Er metadata.name wordt naar de waarde verwezen op de laatste regel van deploymentExample.yaml de volgende stap. De spec.resources.requests.storage parameter bepaalt de grootte van het permanente volume. In dit voorbeeld is het 2 GB, maar kan worden aangepast aan uw behoeften:

    Notitie

    Gebruik alleen kleine letters en streepjes. Zie de documentatie voor de naamgeving van Kubernetes-objecten voor meer informatie.

    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. Maak een bestand met de naam deploymentExample.yaml met de volgende inhoud. Waarden toevoegen voor containers.name en volumes.persistentVolumeClaim.claimName. De spec.replicas parameter bepaalt het aantal replicapods dat moet worden gemaakt. Het is 2 in dit voorbeeld, maar kan worden aangepast aan uw behoeften:

    Notitie

    Gebruik alleen kleine letters en streepjes. Zie de documentatie voor de naamgeving van Kubernetes-objecten voor meer informatie.

    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. Als u deze YAML-bestanden wilt toepassen, voert u het volgende uit:

    kubectl apply -f "localSharedPVC.yaml"
    kubectl apply -f "deploymentExample.yaml"
    
  4. Voer kubectl get pods deze opdracht uit om de naam van uw pod te vinden. Kopieer deze naam, omdat deze nodig is in de volgende stap.

    Notitie

    Omdat spec::replicas van deploymentExample.yaml is opgegeven als 2, worden twee pods weergegeven met behulp van kubectl get pods. U kunt kiezen welke podnaam u wilt gebruiken voor de volgende stap.

  5. Voer de volgende opdracht uit en vervang deze door POD_NAME_HERE de gekopieerde waarde uit de vorige stap:

    kubectl exec -it pod_name_here -- sh
    
  6. Wijzig mappen in het /data koppelpad, zoals opgegeven in deploymentExample.yaml.

  7. Maak bijvoorbeeld een bestand met de naam file1.txt en schrijf ernaar met behulp van echo "Hello World" > file1.txt.

Nadat u de vorige stappen hebt voltooid, begint u met het bewaken van uw implementatie met behulp van Azure Monitor en Kubernetes Monitoring of bewaking van derden met Prometheus en Grafana.

Volgende stappen

Uw implementatie bewaken