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.
Erstellen Sie eine Datei namens
localSharedPVC.yaml
mit folgendem Inhalt. Ändern Sie denmetadata.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 vondeploymentExample.yaml
verwiesen. Der Parameterspec.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
Erstellen Sie eine Datei namens
deploymentExample.yaml
mit folgendem Inhalt. Fügen Sie Werte fürcontainers.name
undvolumes.persistentVolumeClaim.claimName
hinzu. Der Parameterspec.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>
Führen Sie Folgendes aus, um diese YAML-Dateien anzuwenden:
kubectl apply -f "localSharedPVC.yaml" kubectl apply -f "deploymentExample.yaml"
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
vondeploymentExample.yaml
als2
angegeben wurde, werden mitkubectl get pods
zwei Pods angezeigt. Sie können einen der beiden Podnamen für den nächsten Schritt auswählen.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
Ändern Sie Verzeichnisse in den Bereitstellungspfad „
/data
“, wie unterdeploymentExample.yaml
angegeben.Erstellen Sie z. B. eine Datei mit dem Namen
file1.txt
, und schreiben Sie darin mithilfe vonecho "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.