Local Shared Edge Volumes
Cet article décrit la configuration pour Local Shared Edge Volumes (stockage local, durable et hautement disponible).
Qu’est-ce que Local Shared Edge Volumes ?
La fonctionnalité Local Shared Edge Volumes offre un stockage hautement disponible, capable de basculement et local sur votre cluster Kubernetes. Ce type de stockage partagé reste indépendant de l’infrastructure cloud, ce qui en fait un choix idéal pour les espaces « scratch », le stockage temporaire et les données persistantes en local qui risquent de ne pas convenir pour le cloud.
Créer une revendication de volume persistant (PVC) Local Shared Edge Volumes et configurer un pod sur la revendication PVC
Créez un fichier nommé
localSharedPVC.yaml
avec le contenu suivant. Remplacez la valeurmetadata.name
par un nom pour votre revendication de volume persistant. Ensuite, à la ligne 8, spécifiez l’espace de noms qui correspond à votre pod consommateur prévu. La valeurmetadata.name
est référencée sur la dernière ligne dedeploymentExample.yaml
à l’étape suivante. Le paramètrespec.resources.requests.storage
détermine la taille du volume persistant. Dans cet exemple, la taille est de 2 Go, mais vous pouvez la modifier pour l’adapter à vos besoins :Remarque
Utilisez uniquement des lettres minuscules et des tirets. Pour plus d’informations, consultez la documentation sur le nommage des objets 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
Créez un fichier nommé
deploymentExample.yaml
avec le contenu suivant. Ajoutez les valeurs decontainers.name
etvolumes.persistentVolumeClaim.claimName
. Le paramètrespec.replicas
détermine le nombre de pods de réplica à créer. Dans cet exemple, nous avons choisis de créer 2 pods de réplicas, mais vous pouvez modifier ce nombre pour l’adapter à vos besoins :Remarque
Utilisez uniquement des lettres minuscules et des tirets. Pour plus d’informations, consultez la documentation sur le nommage des objets 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>
Pour appliquer ces fichiers YAML, exécutez :
kubectl apply -f "localSharedPVC.yaml" kubectl apply -f "deploymentExample.yaml"
Exécutez
kubectl get pods
pour trouver le nom de votre pod. Copiez ce nom, car vous en aurez besoin à l’étape suivante.Remarque
Étant donné que
spec::replicas
dansdeploymentExample.yaml
a été spécifié avec la valeur2
, deux pods apparaissent aveckubectl get pods
. Vous pouvez choisir l’un ou l’autre nom de pod à utiliser lors de l’étape suivante.Exécutez la commande suivante et remplacez
POD_NAME_HERE
par votre valeur copiée de l’étape précédente :kubectl exec -it pod_name_here -- sh
Changez de répertoire et accédez au chemin de montage
/data
, comme spécifié dansdeploymentExample.yaml
.En guise d’exemple, créez un fichier nommé
file1.txt
et écrivez-yecho "Hello World" > file1.txt
.
Une fois que vous avez effectué les étapes précédentes, commencez à surveiller votre déploiement en utilisant Azure Monitor et Kubernetes Monitoring, ou un logiciel de surveillance tiers avec Prometheus et Grafana.