In diesem Dokument wird beschrieben, 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.
Dieses Dokument richtet sich an Entwickler in der Gruppe der Anwendungsoperatoren, die für die Erstellung von Anwendungsworkloads für ihre Organisation verantwortlich sind. Weitere Informationen finden Sie unter Zielgruppen für die Air-Gap-Dokumentation für GDC.
Hinweise
Zum Ausführen der Aufgaben in diesem Dokument benötigen Sie die folgenden Ressourcen und Rollen:
Wenn Sie Befehle für einen Kubernetes-Cluster 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, falls Sie noch keine haben.
Verwenden Sie den kubeconfig-Pfad des Kubernetes-Clusters, um
KUBERNETES_CLUSTER_KUBECONFIGin 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 Volumesnapshots in einem freigegebenen Cluster zu erhalten.Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Cluster Developer“ (
cluster-developer) in einem Standardcluster zuzuweisen, um die erforderlichen Berechtigungen zum Verwalten von Volume-Snapshots in einem Standardcluster 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.
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 EOFErsetzen 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 es sich um einen Projekt-Namespace handeln. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.VOLUME_SNAPSHOT_NAME: der Name desVolumeSnapshot-Objekts.PVC_NAME: der Name der PVC, für die Sie einen Snapshot erstellen.
Der Snapshot-Vorgang ist abgeschlossen, wenn das Feld
.status.readyToUseden Werttruehat. 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'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 EOFErsetzen 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 es sich um einen Projekt-Namespace handeln. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.PVC_NAME: der Name der PVC, für die Sie einen Snapshot erstellen.VOLUME_SNAPSHOT_NAME: der Name des Volume-Snapshots.
Nächste Schritte
- Containerarbeitslasten – Übersicht
- Zustandsorientierte Arbeitslasten erstellen
- Auf nichtflüchtigen Speicher zugreifen