Volume-Snapshots erstellen

Auf dieser Seite wird erläutert, wie Sie eine Kopie oder einen Snapshot eines Speichervolumes zu einem bestimmten Zeitpunkt für Ihre Containeranwendung erstellen. Mit einem Volume-Snapshot können Sie ein Volume auf einen vorherigen Zustand zurücksetzen oder ein neues Volume bereitstellen.

Diese Seite richtet sich an Entwickler in der Gruppe der Anwendungsbetreiber, die für die Erstellung von Anwendungsarbeitslasten für ihre Organisation verantwortlich sind. Weitere Informationen finden Sie in der Dokumentation zu Zielgruppen für GDC-Air-Gap-Umgebungen.

Hinweise

Wenn Sie Befehle für einen Kubernetes-Cluster ausführen möchten, benötigen Sie die folgenden Ressourcen:

  1. Suchen Sie den Namen des Kubernetes-Clusters oder fragen Sie Ihren Plattformadministrator danach.

  2. Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Kubernetes-Cluster, falls Sie noch keine haben.

  3. Verwenden Sie den kubeconfig-Pfad des Kubernetes-Clusters, um KUBERNETES_CLUSTER_KUBECONFIG in dieser Anleitung zu ersetzen.

Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Namespace Admin“ (namespace-admin) in Ihrem Projekt-Namespace zuzuweisen, um die erforderlichen Berechtigungen zum Verwalten von Volume-Snapshots zu erhalten.

Volume-Snapshot erstellen

Wenn Sie einen Snapshot eines PersistentVolumeClaim-Objekts erstellen möchten, erstellen Sie ein VolumeSnapshot-Objekt. Das System garantiert keine Datenkonsistenz. Halten Sie die Anwendung an und leeren Sie die Daten, bevor Sie einen Snapshot erstellen.

  1. Benutzerdefinierte VolumeSnapshot-Ressource erstellen:

    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
    

    Ersetzen Sie Folgendes:

    • KUBERNETES_CLUSTER_KUBECONFIG: Die kubeconfig-Datei für den Cluster.

    • NAMESPACE: der Projekt-Namespace, in dem der Volume-Snapshot erstellt werden soll.

    • VOLUME_SNAPSHOT_NAME: der Name des VolumeSnapshot-Objekts.

    • PVC_NAME: der Name der PVC, für die Sie einen Snapshot erstellen.

  2. Der Snapshot-Vorgang ist abgeschlossen, wenn das Feld .status.readyToUse den Wert true hat. Mit dem folgenden Befehl können Sie den Status prüfen:

      kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG get volumesnapshot \
        -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'
    
  3. Aktualisieren Sie das PVC-Manifest mit dem Volume-Snapshot, der als Datenquelle angegeben ist:

    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
    

    Ersetzen Sie Folgendes:

    • KUBERNETES_CLUSTER_KUBECONFIG: Die kubeconfig-Datei für den Cluster.

    • NAMESPACE: der Namespace, in dem die PVC-Ressource vorhanden ist.

    • PVC_NAME: der Name der PVC, für die Sie einen Snapshot erstellen.

    • VOLUME_SNAPSHOT_NAME: der Name des Volume-Snapshots.

Nächste Schritte