Partager via


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

  1. Créez un fichier nommé localSharedPVC.yaml avec le contenu suivant. Remplacez la valeur metadata.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 valeur metadata.name est référencée sur la dernière ligne de deploymentExample.yaml à l’étape suivante. Le paramètre spec.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
    
  2. Créez un fichier nommé deploymentExample.yaml avec le contenu suivant. Ajoutez les valeurs de containers.name et volumes.persistentVolumeClaim.claimName. Le paramètre spec.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>
    
  3. Pour appliquer ces fichiers YAML, exécutez :

    kubectl apply -f "localSharedPVC.yaml"
    kubectl apply -f "deploymentExample.yaml"
    
  4. 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 dans deploymentExample.yaml a été spécifié avec la valeur 2, deux pods apparaissent avec kubectl get pods. Vous pouvez choisir l’un ou l’autre nom de pod à utiliser lors de l’étape suivante.

  5. 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
    
  6. Changez de répertoire et accédez au chemin de montage /data, comme spécifié dans deploymentExample.yaml.

  7. En guise d’exemple, créez un fichier nommé file1.txt et écrivez-y echo "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.

Étapes suivantes

Surveiller votre déploiement