Volume-Snapshots erstellen

In diesem Dokument wird erläutert, wie Sie eine Kopie oder einen Snapshot eines Speicher-Volumes 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.

Dieses Dokument richtet sich an Entwickler in der Gruppe der Anwendungsoperatoren, die für die Erstellung von Anwendungsarbeitslasten für ihre Organisation verantwortlich sind. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Hinweis

Zum Ausführen der Aufgaben in diesem Dokument müssen Sie die erforderlichen Berechtigungen anfordern und Ihre Umgebung vorbereiten.

IAM-Rollen anfordern

Sie benötigen bestimmte Rollen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Volume-Snapshots benötigen. Welche Rollen Sie benötigen, hängt davon ab, ob Sie in einem freigegebenen Cluster auf Organisationsebene oder in einem Standardcluster auf Projektebene arbeiten. Weitere Informationen finden Sie unter Kubernetes-Clusterkonfigurationen.

Freigegebene Clusterrollen

Bitten Sie Ihren IAM-Projektadministrator, Ihnen die Rolle Namespace Admin (namespace-admin) zuzuweisen, um Volume-Snapshots in einem freigegebenen Cluster zu erstellen, zu löschen, zu bearbeiten oder anzusehen. Diese Rolle ist an Ihren Projekt-Namespace gebunden.

Standardclusterrollen

Bitten Sie Ihren IAM-Projektadministrator, Ihnen die Rolle Cluster-Entwickler (cluster-developer) zuzuweisen, um Volume-Snapshots in einem Standardcluster zu erstellen, zu löschen, zu bearbeiten oder anzusehen. Diese Rolle ist an Ihren Projekt-Namespace gebunden.

Umgebung vorbereiten

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

  • Suchen Sie den Namen des Kubernetes-Clusters oder fragen Sie ein Mitglied der Plattformadministratorgruppe nach dem Clusternamen.

  • Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Kubernetes-Cluster.

  • Ersetzen Sie KUBERNETES_CLUSTER_KUBECONFIG in dieser Anleitung durch den kubeconfig-Pfad des Kubernetes-Clusters.

Volume-Snapshot erstellen

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

  1. Erstellen Sie eine benutzerdefinierte VolumeSnapshot-Ressource:

    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 Namespace, in dem der Volume-Snapshot erstellt werden soll. Bei freigegebenen Clustern muss dies ein Projekt-Namespace sein. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.

    • VOLUME_SNAPSHOT_NAME: der Name des VolumeSnapshot-Objekts.

    • PVC_NAME: der Name des PVC, für den 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. Bei freigegebenen Clustern muss dies ein Projekt-Namespace sein. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.

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

    • VOLUME_SNAPSHOT_NAME: der Name des Volume-Snapshots.

Nächste Schritte