Verwenden Sie AppVault-Objekte zum Verwalten von Buckets
Die benutzerdefinierte Bucket-Ressource (CR) für Trident Protect wird als AppVault bezeichnet. AppVault-Objekte sind die deklarative Kubernetes-Workflow-Darstellung eines Storage-Buckets. Ein AppVault CR enthält die Konfigurationen, die für einen Bucket erforderlich sind, der für Schutzvorgänge verwendet werden kann, z. B. Backups, Snapshots, Wiederherstellungsvorgänge und SnapMirror-Replikation. Nur Administratoren können AppVaults erstellen.
Beispiele für die Schlüsselgenerierung und AppVault-Definitionen
Beim Definieren eines AppVault CR müssen Sie Anmeldeinformationen eingeben, um auf die vom Anbieter gehosteten Ressourcen zugreifen zu können. Die Art und Weise, wie Sie die Schlüssel für die Anmeldeinformationen generieren, hängt vom Anbieter ab. Im Folgenden finden Sie Beispiele für die Schlüsselgenerierung über die Befehlszeile für mehrere Anbieter, gefolgt von AppVault-Beispieldefinitionen für jeden Anbieter.
Google Cloud
Beispiel für die Schlüsselgenerierung:
kubectl create secret generic gcp-creds --from-file=credentials=<mycreds-file.json> -n trident-protect
Die folgenden AppVault-Definitionsbeispiele werden als CR bereitgestellt, den Sie verwenden und ändern können, oder als Beispiel für einen Trident Protect CLI-Befehl, der den AppVault CR für Sie generiert:
apiVersion: protect.trident.netapp.io/v1
kind: AppVault
metadata:
name: gcp-trident-protect-src-bucket-b643cc50-0429-4ad5-971f-ac4a83621922
namespace: trident-protect
spec:
providerType: GCP
providerConfig:
gcp:
bucketName: trident-protect-src-bucket
projectID: project-id
providerCredentials:
credentials:
valueFromSecret:
key: credentials
name: gcp-trident-protect-src-bucket-secret
tridentctl protect create vault gcp my-new-vault --bucket mybucket --project my-gcp-project --secret <gcp-creds>/<credentials>
Amazon S3
Beispiel für die Schlüsselgenerierung:
kubectl create secret generic -n trident-protect s3 --from-literal=accessKeyID=<secret-name> --from-literal=secretAccessKey=<generic-s3-trident-protect-src-bucket-secret>
Die folgenden AppVault-Definitionsbeispiele werden als CR bereitgestellt, den Sie verwenden und ändern können, oder als Beispiel für einen Trident Protect CLI-Befehl, der den AppVault CR für Sie generiert:
apiVersion: protect.trident.netapp.io/v1
kind: AppVault
metadata:
name: amazon-s3-trident-protect-src-bucket-b643cc50-0429-4ad5-971f-ac4a83621922
namespace: trident-protect
spec:
providerType: AWS
providerConfig:
s3:
bucketName: trident-protect-src-bucket
endpoint: s3.example.com
providerCredentials:
accessKeyID:
valueFromSecret:
key: accessKeyID
name: s3
secretAccessKey:
valueFromSecret:
key: secretAccessKey
name: s3
tridentctl protect create vault GenericS3 s3vault --bucket <bucket-name> --secret <secret-name> --endpoint <s3-endpoint>
Microsoft Azure
Beispiel für die Schlüsselgenerierung:
kubectl create secret generic <secret-name> --from-literal=accountKey=<secret-name> -n trident-protect
Die folgenden AppVault-Definitionsbeispiele werden als CR bereitgestellt, den Sie verwenden und ändern können, oder als Beispiel für einen Trident Protect CLI-Befehl, der den AppVault CR für Sie generiert:
apiVersion: protect.trident.netapp.io/v1
kind: AppVault
metadata:
name: azure-trident-protect-src-bucket-b643cc50-0429-4ad5-971f-ac4a83621922
namespace: trident-protect
spec:
providerType: Azure
providerConfig:
azure:
accountName: account-name
bucketName: trident-protect-src-bucket
providerCredentials:
accountKey:
valueFromSecret:
key: accountKey
name: azure-trident-protect-src-bucket-secret
tridentctl protect create vault Azure <vault-name> --account <account-name> --bucket <bucket-name> --secret <secret-name>
Unterstützte Werte für providerType und providerConfig
Die providerType
Schlüssel und providerConfig
in einem AppVault CR erfordern bestimmte Werte. In der folgenden Tabelle sind die unterstützten Werte für den Schlüssel sowie der zugehörige providerConfig
Schlüssel aufgeführt, den Sie für providerType
jeden Wert verwenden müssen providerType
.
Unterstützter Wert providerType |
Zugeordneter providerConfig Schlüssel |
---|---|
AWS |
s3 |
Azure |
Azure |
GCP |
GCP |
GenericS3 |
s3 |
OntapS3 |
s3 |
StorageGridS3 |
s3 |
Verwenden Sie den AppVault-Browser, um Informationen zu AppVault anzuzeigen
Sie können das Trident Protect CLI-Plugin verwenden, um Informationen über AppVault-Objekte anzuzeigen, die auf dem Cluster erstellt wurden.
-
Inhalt eines AppVault-Objekts anzeigen:
tridentctl protect get appvaultcontent gcp-vault --show-resources all
Beispielausgabe:
+-------------+-------+----------+-----------------------------+---------------------------+ | CLUSTER | APP | TYPE | NAME | TIMESTAMP | +-------------+-------+----------+-----------------------------+---------------------------+ | | mysql | snapshot | mysnap | 2024-08-09 21:02:11 (UTC) | | production1 | mysql | snapshot | hourly-e7db6-20240815180300 | 2024-08-15 18:03:06 (UTC) | | production1 | mysql | snapshot | hourly-e7db6-20240815190300 | 2024-08-15 19:03:06 (UTC) | | production1 | mysql | snapshot | hourly-e7db6-20240815200300 | 2024-08-15 20:03:06 (UTC) | | production1 | mysql | backup | hourly-e7db6-20240815180300 | 2024-08-15 18:04:25 (UTC) | | production1 | mysql | backup | hourly-e7db6-20240815190300 | 2024-08-15 19:03:30 (UTC) | | production1 | mysql | backup | hourly-e7db6-20240815200300 | 2024-08-15 20:04:21 (UTC) | | production1 | mysql | backup | mybackup5 | 2024-08-09 22:25:13 (UTC) | | | mysql | backup | mybackup | 2024-08-09 21:02:52 (UTC) | +-------------+-------+----------+-----------------------------+---------------------------+
-
Um den AppVaultPath für jede Ressource anzuzeigen, verwenden Sie optional das Flag
--show-paths
.Der Cluster-Name in der ersten Spalte der Tabelle ist nur verfügbar, wenn in der Installation Trident Protect Helm ein Cluster-Name angegeben wurde. Zum Beispiel:
--set clusterName=production1
.
Entfernen Sie einen AppVault
Sie können ein AppVault-Objekt jederzeit entfernen.
Entfernen Sie den Schlüssel im AppVault CR nicht finalizers , bevor Sie das AppVault-Objekt löschen. Wenn Sie dies tun, kann dies zu Restdaten im AppVault-Bucket und verwaisten Ressourcen im Cluster führen.
|
Stellen Sie sicher, dass Sie alle Snapshots und Backups gelöscht haben, die im zugehörigen Bucket gespeichert sind.
-
Entfernen Sie das AppVault-Objekt und ersetzen Sie
appvault_name
es durch den Namen des zu entfernenden AppVault-Objekts:kubectl delete appvault <appvault_name> -n trident-protect
-
Entfernen Sie das AppVault-Objekt und ersetzen Sie
appvault_name
es durch den Namen des zu entfernenden AppVault-Objekts:tridentctl protect delete appvault <appvault_name> -n trident-protect