Dela via


Självstudie: Konfigurera en lokal delad gränsvolym

I den här handledningen får du lära dig hur du konfigurerar en lokal delad kantvolym. Den här volymtypen erbjuder read-write-many-lagring, lokalt för ditt Kubernetes-kluster. Den här delade lagringstypen är fortfarande oberoende av molninfrastrukturen, vilket gör den idealisk för ledigt utrymme, tillfällig lagring och lokalt beständiga data som är olämpliga för molnmål. Det är också ett bra mål för data som aktivt arbetas med, ändras, eller bearbetas i periferin.

Handledningen täcker följande moment:

  • Skapa en PVC-volym för lokal delad kant
  • Skapa en exempeldistribution
  • Ansluta till din podd
  • Skriva en exempelfil

Förutsättningar

Skapa en PVC-volym för lokal delad kant

Det här avsnittet skapar en Persistent Volume Claim, eller PVC, för din lokalt delade volym. Du anger hur mycket utrymme du vill etablera för den här volymen.

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

Kör sedan det här kommandot för att tillämpa YAML-filen och skapa PVC:

kubectl apply -f "localSharedPVC.yaml"

Skapa en exempeldistribution eller använd din egen

Om du redan har ett program att distribuera mot kan du använda det här. För enkelhetens skull och för att komma igång inkluderar vi en exempeldistribution här. Skapa en distribution med hjälp av vår exempelkonfiguration genom att 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>

Kör sedan det här kommandot för att tillämpa YAML-filen och skapa distributionen:

kubectl apply -f "deploymentExample.yaml"

Ansluta till din podd

Kör kubectl get pods för att hitta namnet på din podd. Kopiera det här namnet eftersom det behövs i nästa steg.

Anmärkning

Eftersom spec::replicas från deploymentExample.yaml angavs som 2, visas två poddar genom kubectl get pods. Du kan använda endera poddnamnet för nästa steg.

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 

Ändra kataloger till monteringssökvägen /data enligt beskrivningen i deploymentExample.yaml.

Skriva en exempelfil

Nu när du är ansluten till podden och befinner dig i monteringsvägen, visas alla filer som du skriver här i volymen.

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

Nu kan du se att filen du skrev finns i katalogen.

Nästa steg

När du har slutfört de här stegen börjar du övervaka distributionen med Azure Monitor och Kubernetes Monitoring eller övervakning från tredje part med Prometheus och Grafana.