Créer des instantanés de volume

Cette page explique comment créer une copie, ou instantané, d'un volume de stockage à un moment précis pour votre application de conteneur. Un instantané de volume vous permet de revenir à un état antérieur ou de provisionner un nouveau volume.

Cette page s'adresse aux développeurs du groupe des opérateurs d'applications, qui sont chargés de créer des charges de travail d'application pour leur organisation.

Avant de commencer

Pour exécuter des commandes sur le cluster Kubernetes Bare Metal préconfiguré, assurez-vous de disposer des ressources suivantes :

  1. Recherchez le nom du cluster Kubernetes ou demandez-le à votre administrateur de plate-forme.

  2. Connectez-vous et générez le fichier kubeconfig pour le cluster Kubernetes si vous n'en avez pas.

  3. Utilisez le chemin d'accès kubeconfig du cluster Kubernetes pour remplacer CLUSTER_KUBECONFIG dans ces instructions.

Pour obtenir les autorisations requises pour gérer les instantanés de volumes, demandez à votre administrateur IAM de l'organisation de vous accorder le rôle d'administrateur de l'espace de noms (namespace-admin) dans l'espace de noms de votre projet.

Prendre un instantané de volume

Pour prendre un instantané d'un objet PersistentVolumeClaim, créez un objet VolumeSnapshot. Le système ne garantit pas la cohérence des données. Mettez l'application en veille et videz les données avant de prendre un instantané.

  1. Créez une ressource personnalisée VolumeSnapshot :

    kubectl --kubeconfig CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: snapshot.storage.k8s.io/v1
    kind: VolumeSnapshot
    metadata:
      name: VOLUME_SNAPSHOT_NAME
    spec:
      source:
        persistentVolumeClaimName: PVC_NAME
    EOF
    

    Remplacez les éléments suivants :

    • CLUSTER_KUBECONFIG : fichier kubeconfig du cluster Kubernetes.

    • NAMESPACE : espace de noms du projet dans lequel créer l'instantané de volume.

    • VOLUME_SNAPSHOT_NAME : nom de l'objet VolumeSnapshot.

    • PVC_NAME : nom du PVC pour lequel vous créez un instantané.

  2. L'opération de création d'instantané est terminée lorsque le champ .status.readyToUse devient true. Vous pouvez utiliser la commande suivante pour vérifier l'état :

      kubectl --kubeconfig CLUSTER_KUBECONFIG get volumesnapshot \
        -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'
    
  3. Mettez à jour le fichier manifeste du PVC avec l'instantané de volume spécifié comme source de données :

    kubectl --kubeconfig CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: PVC_NAME
    spec:
      dataSource:
        name: VOLUME_SNAPSHOT_NAME
        kind: VolumeSnapshot
        apiGroup: snapshot.storage.k8s.io
      storageClassName: standard-rwo
      accessModes:
        - ReadWriteOnce
     resources:
       requests:
       storage: 10Gi
    EOF
    

    Remplacez les éléments suivants :

    • CLUSTER_KUBECONFIG : fichier kubeconfig du cluster Kubernetes.

    • NAMESPACE : espace de noms dans lequel existe la ressource PVC.

    • PVC_NAME : nom du PVC pour lequel vous créez un instantané.

    • VOLUME_SNAPSHOT_NAME : nom de l'instantané de volume.

Étapes suivantes