Créer des instantanés de volume

Ce document explique comment créer une copie, ou un 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.

Ce document s'adresse aux développeurs du groupe d'opérateurs d'applications, qui sont chargés de créer des charges de travail d'application pour leur organisation. Pour en savoir plus, consultez Audiences pour la documentation GDC sous air gap.

Avant de commencer

Pour effectuer les tâches décrites dans ce document, vous devez demander les autorisations nécessaires et préparer votre environnement.

Demander des rôles IAM

Vous devez disposer de rôles spécifiques pour obtenir les autorisations nécessaires à la création d'instantanés de volumes. Les rôles dont vous avez besoin dépendent du type de cluster que vous utilisez : un cluster partagé à portée d'organisation ou un cluster standard à portée de projet. Pour en savoir plus, consultez Configurations de clusters Kubernetes.

Rôles de cluster partagés

Pour créer, supprimer, modifier ou afficher des instantanés de volumes dans un cluster partagé, demandez à votre administrateur IAM de projet de vous accorder le rôle Administrateur de l'espace de noms (namespace-admin). Ce rôle est lié à l'espace de noms de votre projet.

Rôles de cluster standards

Pour créer, supprimer, modifier ou afficher des snapshots de volumes dans un cluster standard, demandez à l'administrateur IAM de votre projet de vous accorder le rôle Développeur de cluster (cluster-developer). Ce rôle est lié à l'espace de noms de votre projet.

Préparer votre environnement

Pour exécuter des commandes sur un cluster Kubernetes à l'aide de l'API, assurez-vous de disposer des ressources suivantes :

  • Recherchez le nom du cluster Kubernetes ou demandez-le à un membre du groupe des administrateurs de la plate-forme.

  • Connectez-vous et générez le fichier kubeconfig pour le cluster Kubernetes.

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

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 KUBERNETES_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 :

    • KUBERNETES_CLUSTER_KUBECONFIG : fichier kubeconfig du cluster.

    • NAMESPACE : espace de noms dans lequel créer l'instantané de volume. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.

    • 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 KUBERNETES_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 KUBERNETES_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 :

    • KUBERNETES_CLUSTER_KUBECONFIG : fichier kubeconfig du cluster.

    • NAMESPACE : espace de noms dans lequel se trouve la ressource PVC. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.

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

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

Étapes suivantes