Lokalne udostępnione woluminy brzegowe
W tym artykule opisano konfigurację lokalnych udostępnionych woluminów brzegowych (wysoce dostępny, trwały magazyn lokalny).
Co to jest lokalny udostępniony wolumin brzegowy?
Funkcja lokalnego udostępnionego woluminu usługi Edge zapewnia magazyn o wysokiej dostępności, obsługujący tryb failover, lokalny dla klastra Kubernetes. Ten udostępniony typ magazynu pozostaje niezależny od infrastruktury chmury, co czyni go idealnym rozwiązaniem dla miejsc tymczasowych, magazynu tymczasowego i lokalnie trwałych danych, które mogą być nieodpowiednie dla miejsc docelowych w chmurze.
Tworzenie lokalnego udostępnionego woluminu krawędzi trwałego oświadczenia woluminu (PVC) i konfigurowanie zasobnika pod kątem PCV
Utwórz plik o nazwie z
localSharedPVC.yaml
następującą zawartością. Zmodyfikujmetadata.name
wartość przy użyciu nazwy oświadczenia trwałego woluminu. Następnie w wierszu 8 określ przestrzeń nazw zgodną z zamierzonym zasobnikiem zużywania. Wartośćmetadata.name
jest przywołyowana w ostatnim wierszudeploymentExample.yaml
w następnym kroku. Parametrspec.resources.requests.storage
określa rozmiar woluminu trwałego. W tym przykładzie jest to 2 GB, ale można go zmodyfikować zgodnie z potrzebami:Uwaga
Używaj tylko małych liter i kreski. Aby uzyskać więcej informacji, zobacz dokumentację nazewnictwa obiektów Kubernetes.
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
Utwórz plik o nazwie z
deploymentExample.yaml
następującą zawartością. Dodaj wartości dlacontainers.name
ivolumes.persistentVolumeClaim.claimName
. Parametrspec.replicas
określa liczbę zasobników repliki do utworzenia. W tym przykładzie jest to 2, ale można go zmodyfikować zgodnie z potrzebami:Uwaga
Używaj tylko małych liter i kreski. Aby uzyskać więcej informacji, zobacz dokumentację nazewnictwa obiektów Kubernetes.
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>
Aby zastosować te pliki YAML, uruchom polecenie:
kubectl apply -f "localSharedPVC.yaml" kubectl apply -f "deploymentExample.yaml"
Uruchom polecenie
kubectl get pods
, aby znaleźć nazwę zasobnika. Skopiuj tę nazwę, ponieważ jest ona potrzebna w następnym kroku.Uwaga
Ponieważ
spec::replicas
parametr fromdeploymentExample.yaml
został określony jako2
, dwa zasobniki są wyświetlane przy użyciu poleceniakubectl get pods
. Możesz wybrać nazwę zasobnika do użycia w następnym kroku.Uruchom następujące polecenie i zastąp
POD_NAME_HERE
wartość skopiowaną z poprzedniego kroku:kubectl exec -it pod_name_here -- sh
Zmień katalogi na ścieżkę
/data
instalacji, jak określono wdeploymentExample.yaml
pliku .Na przykład utwórz plik o nazwie
file1.txt
i zapisz go przy użyciu poleceniaecho "Hello World" > file1.txt
.
Po wykonaniu poprzednich kroków rozpocznij monitorowanie wdrożenia przy użyciu usług Azure Monitor i Kubernetes Monitoring lub monitorowania innych firm za pomocą rozwiązań Prometheus i Grafana.