Freigeben über


Lokale freigegebene Edgevolumes

In diesem Artikel wird die Konfiguration für lokale freigegebene Edgevolumes (hoch verfügbarer, dauerhafter lokaler Speicher) beschrieben.

Was ist ein lokales freigegebenes Edgevolume?

Das Feature Lokale freigegebene Edgevolumes bietet hoch verfügbare, failoverfähige Speicher lokal zu Ihrem Kubernetes-Cluster. Dieser freigegebene Speichertyp ist unabhängig von der Cloudinfrastruktur und eignet sich ideal für Entwurfsspeicher, temporären Speicher und lokal persistente Daten, die für Cloudziele nicht geeignet sein könnten.

Erstellen sie einen lokalen freigegebenen Volumenanspruch (Persistent Volume Claim, PVC) und konfigurieren Sie einen Pod für den PVC.

  1. Erstellen Sie eine Datei namens localSharedPVC.yaml mit folgendem Inhalt. Ändern Sie den metadata.name-Wert in den Namen für Ihren persistenten Volumeanspruch. Geben Sie dann in Zeile 8 den Namespace an, der ihrem beabsichtigten verarbeiteten Pod entspricht. Im nächsten Schritt wird auf den Wert „metadata.name“ in der letzten Zeile von deploymentExample.yaml verwiesen. Der Parameter spec.resources.requests.storage bestimmt die Größe des persistenten Volumes. In diesem Beispiel beträgt die Größe 2 GB, sie kann jedoch an Ihre Anforderungen angepasst werden:

    Hinweis

    Verwenden Sie nur Kleinbuchstaben und Bindestriche. Weitere Informationen finden Sie in der Dokumentation zur Benennung von Kubernetes-Objekten.

    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. Erstellen Sie eine Datei namens deploymentExample.yaml mit folgendem Inhalt. Fügen Sie Werte für containers.name und volumes.persistentVolumeClaim.claimName hinzu. Der Parameter spec.replicas bestimmt die Anzahl der zu erstellenden Replikatpods. In diesem Beispiel ist die Anzahl 2, sie kann jedoch an Ihre Anforderungen angepasst werden:

    Hinweis

    Verwenden Sie nur Kleinbuchstaben und Bindestriche. Weitere Informationen finden Sie in der Dokumentation zur Benennung von Kubernetes-Objekten.

    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. Führen Sie Folgendes aus, um diese YAML-Dateien anzuwenden:

    kubectl apply -f "localSharedPVC.yaml"
    kubectl apply -f "deploymentExample.yaml"
    
  4. Führen Sie kubectl get pods aus, um den Namen Ihres Pods zu finden. Kopieren Sie diesen Namen, da er im nächsten Schritt benötigt wird.

    Hinweis

    Da spec::replicas von deploymentExample.yaml als 2 angegeben wurde, werden mit kubectl get pods zwei Pods angezeigt. Sie können einen der beiden Podnamen für den nächsten Schritt auswählen.

  5. Führen Sie den folgenden Befehl aus, und ersetzen Sie POD_NAME_HERE durch ihren kopierten Wert aus dem vorherigen Schritt:

    kubectl exec -it pod_name_here -- sh
    
  6. Ändern Sie Verzeichnisse in den Bereitstellungspfad „/data“, wie unter deploymentExample.yaml angegeben.

  7. Erstellen Sie z. B. eine Datei mit dem Namen file1.txt, und schreiben Sie darin mithilfe von echo "Hello World" > file1.txt.

Nachdem Sie die vorherigen Schritte ausgeführt haben, beginnen Sie mit der Überwachung Ihrer Bereitstellung mit Azure Monitor und Kubernetes Monitoring oder Überwachung von Drittanbietern mit Prometheus und Grafana.

Nächste Schritte

Überwachen der Bereitstellung