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 d'un volume ou de provisionner un nouveau volume.
Ce document s'adresse aux développeurs du groupe des opérateurs d'application, qui sont chargés de créer des charges de travail d'application pour leur organisation. Pour en savoir plus, consultez la documentation sur les audiences pour GDC air-gapped.
Avant de commencer
Pour effectuer les tâches décrites dans ce document, vous devez disposer des ressources et des rôles suivants :
Pour exécuter des commandes sur un cluster Kubernetes, 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 si vous n'en avez pas.
Utilisez le chemin d'accès kubeconfig du cluster Kubernetes pour remplacer
KUBERNETES_CLUSTER_KUBECONFIGdans ces instructions.
Pour obtenir les autorisations requises pour gérer les instantanés de volumes dans un cluster partagé, 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.Pour obtenir les autorisations requises pour gérer les instantanés de volumes dans un cluster standard, demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Développeur de cluster (
cluster-developer) dans un cluster standard.
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: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 EOFRemplacez 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'objetVolumeSnapshot.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.readyToUsedevienttrue. 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'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 EOFRemplacez les éléments suivants :
KUBERNETES_CLUSTER_KUBECONFIG: fichier kubeconfig du cluster.NAMESPACE: espace de noms dans lequel existe 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
- Présentation des charges de travail de conteneur
- Créer des charges de travail avec état
- Accéder au stockage persistant