Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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 :
Recherchez le nom du cluster Kubernetes ou demandez-le à votre administrateur de plate-forme.
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é.
Créez une ressource personnalisée VolumeSnapshot :
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é.
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 :
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/05 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/05 (UTC)."],[[["\u003cp\u003eVolume snapshots allow you to create a copy of a volume at a specific point in time, which can be used to restore a volume to a previous state or provision a new one.\u003c/p\u003e\n"],["\u003cp\u003eIn Kubernetes, volume snapshots are managed through the \u003ccode\u003eVolumeSnapshot\u003c/code\u003e object.\u003c/p\u003e\n"],["\u003cp\u003eBefore managing volume snapshots, you need to ensure you have the user cluster name, a kubeconfig file for that cluster, and the Namespace Admin role permissions.\u003c/p\u003e\n"],["\u003cp\u003eTo create a snapshot of a \u003ccode\u003ePersistentVolumeClaim\u003c/code\u003e, you need to create a \u003ccode\u003eVolumeSnapshot\u003c/code\u003e object, while pausing the application and flushing data prior to the snapshot.\u003c/p\u003e\n"],["\u003cp\u003eYou can verify the completion of the snapshot operation by checking if the \u003ccode\u003e.status.readyToUse\u003c/code\u003e field becomes \u003ccode\u003etrue\u003c/code\u003e, and then you can update the PVC manifest using the snapshot as a data source.\u003c/p\u003e\n"]]],[],null,["# Create volume snapshots\n\nThis page explains how to create a copy, or snapshot, of a storage volume at a\nspecific point in time for your container application. A volume snapshot lets\nyou bring a volume back to a prior state or provision a new volume.\n\nThis page is for developers within the application operator group, who are\nresponsible for creating application workloads for their organization.\n\nBefore you begin\n----------------\n\nTo run commands against the pre-configured bare metal Kubernetes cluster, make sure you have the\nfollowing resources:\n\n1. Locate the Kubernetes cluster name, or ask your Platform\n Administrator what the cluster name is.\n\n2. [Sign in and generate](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/iam/sign-in#kubernetes-cluster-kubeconfig) the\n kubeconfig file for the Kubernetes cluster if you don't have one.\n\n3. Use the kubeconfig path of the Kubernetes cluster to replace\n \u003cvar translate=\"no\"\u003eCLUSTER_KUBECONFIG\u003c/var\u003e in these instructions.\n\nTo get the required permissions to manage volume snapshots, ask your\nOrganization IAM Admin to grant you the Namespace Admin role (`namespace-admin`)\nin your project namespace.\n\nTake a volume snapshot\n----------------------\n\nTo take a snapshot of a `PersistentVolumeClaim` object, create a\n`VolumeSnapshot` object. The system does not guarantee data consistency. Pause\nthe application and flush data before taking a snapshot.\n\n1. Create a `VolumeSnapshot` custom resource:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eCLUSTER_KUBECONFIG\u003c/var\u003e \\\n --namespace \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e apply -f - \u003c\u003cEOF\n apiVersion: snapshot.storage.k8s.io/v1\n kind: VolumeSnapshot\n metadata:\n name: \u003cvar translate=\"no\"\u003eVOLUME_SNAPSHOT_NAME\u003c/var\u003e\n spec:\n source:\n persistentVolumeClaimName: \u003cvar translate=\"no\"\u003ePVC_NAME\u003c/var\u003e\n EOF\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eCLUSTER_KUBECONFIG\u003c/var\u003e: the kubeconfig file for\n the Kubernetes cluster.\n\n - \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e: the project namespace in which to create the\n volume snapshot.\n\n - \u003cvar translate=\"no\"\u003eVOLUME_SNAPSHOT_NAME\u003c/var\u003e: the `VolumeSnapshot` object\n name.\n\n - \u003cvar translate=\"no\"\u003ePVC_NAME\u003c/var\u003e: the name of the PVC for which you are\n creating a snapshot.\n\n2. The snapshot operation is complete when the `.status.readyToUse` field\n becomes `true`. You can use the following command to check the status:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eCLUSTER_KUBECONFIG\u003c/var\u003e get volumesnapshot \\\n -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'\n\n3. Update the PVC manifest with the volume snapshot specified as a data\n source:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eCLUSTER_KUBECONFIG\u003c/var\u003e \\\n --namespace \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e apply -f - \u003c\u003cEOF\n apiVersion: v1\n kind: PersistentVolumeClaim\n metadata:\n name: \u003cvar translate=\"no\"\u003ePVC_NAME\u003c/var\u003e\n spec:\n dataSource:\n name: \u003cvar translate=\"no\"\u003eVOLUME_SNAPSHOT_NAME\u003c/var\u003e\n kind: VolumeSnapshot\n apiGroup: snapshot.storage.k8s.io\n storageClassName: standard-rwo\n accessModes:\n - ReadWriteOnce\n resources:\n requests:\n storage: 10Gi\n EOF\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eCLUSTER_KUBECONFIG\u003c/var\u003e: the kubeconfig file for\n the Kubernetes cluster.\n\n - \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e: the namespace in which the PVC\n resource exists.\n\n - \u003cvar translate=\"no\"\u003ePVC_NAME\u003c/var\u003e: the name of the PVC for which you are\n creating a snapshot.\n\n - \u003cvar translate=\"no\"\u003eVOLUME_SNAPSHOT_NAME\u003c/var\u003e: the name of the volume\n snapshot.\n\nWhat's next\n-----------\n\n- [Container workloads overview](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/containers/containers-intro)\n- [Create stateful workloads](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/containers/create-stateful-workloads)\n- [Access persistent storage](/distributed-cloud/hosted/docs/latest/appliance/application/ao-user/containers/access-persistent-storage)"]]