Verwaltung des Multi-Cloud-Objekt-Gateways
Sie können NooBaa verwenden, um Ihre s3-kompatiblen Objektspeicherressourcen zu verwalten, wie IBM Object Storage, AWS s3 oder Azure Blob Storage. Mit NooBaa können Sie Ihren Objektspeicher auch über Cluster und Zonen hinweg konsistent erstellen und verwalten.
Einrichten von Sicherungsspeichern mit Hilfe der NooBaa-CLI
Backing Stores sind NooBaa-Ressourcen zur Verwaltung Ihrer s3-kompatiblen Dienste und Buckets. Wenn Sie einen Sicherungsspeicher erstellen, geben Sie Ihre s3-Service-Berechtigungsnachweise an, wie z. B. Ihre Zugriffsschlüssel-ID, den geheimen Zugriffsschlüssel und den Endpunkt für Ihren Objektspeicherservice. Nachdem Sie Ihrem Cluster Sicherungsspeicher hinzugefügt haben, können Sie Bucket-Klassen erstellen, mit denen Sie Datenverbundrichtlinien für Ihre s3-kompatiblen Speicherservices konfigurieren können.
Nachdem Sie ODF bereitgestellt haben, können Sie weitere Sicherungsspeicher in Ihrem Speicher-Cluster konfigurieren. Sie können einen Sicherungsspeicher erstellen, indem Sie einen s3-kompatiblen Objektspeicher wie AWS oder IBM Cloud Object Storage verwenden.
Sie können Ihre Sicherungsspeicher auch über die Red Hat OpenShift-Webkonsole erstellen und verwalten.
So fügen Sie Ihrem Speichercluster mit Hilfe der NooBaa-CLI einen Sicherungsspeicher hinzu:
Rufen Sie Ihren Red Hat OpenShift-Cluster auf.
- Installieren Sie die NooBaa Operator-CLI.
- Führen Sie den Befehl
noobaa backingstore create
aus, um eine Liste der unterstützten Sicherungsspeichertypen anzuzeigen.
Beispielausgabenoobaa backingstore create
Create backing store Available Commands: aws-s3 Create aws-s3 backing store azure-blob Create azure-blob backing store google-cloud-storage Create google-cloud-storage backing store ibm-cos Create ibm-cos backing store pv-pool Create pv-pool backing store s3-compatible Create s3-compatible backing store
- Rufen Sie die Details des Service ab, den Sie verwenden möchten. Wenn Sie ein IBM Cloud Object Storage einrichten möchten, rufen Sie Ihre HMAC-Berechtigungsnachweise ab. Weitere Informationen finden Sie unter HMAC-Berechtigungsnachweise verwenden.
Der folgende Beispielbefehl zeigt die Konfigurationsparameter, die zum Erstellen eines Sicherungsspeichers unter Verwendung einer IBM Cloud Object Storage-Serviceinstanz erforderlich sind.
noobaa backingstore create ibm-cos <backing-store-name> -n openshift-storage --access-key=<access-key> --endpoint=<endpoint> --secret-key=<secret-key> --target-bucket<target-bucket>
- Rufen Sie die Details Ihres Sicherungsspeichers ab.
noobaa backingstore status <backing-store-name> -n openshift-storage
Erstellen einer Bucket-Klasse, die zwei Sicherungsspeicher mit einer Spiegelungsrichtlinie verwendet
Nachdem Sie ODF installiert und mindestens zwei Sicherungsspeicher konfiguriert haben, können Sie eine Bucket-Klasse erstellen, die mehrere Sicherungsspeicher verwendet. Mithilfe von Bucket-Klassen können Sie Richtlinien für den Datenverbund zwischen Ihren Sicherungsspeichern konfigurieren. Wenn Ihre Anwendungen dann Objekte in Ihr Bucket schreiben, können Sie die Objekte spiegeln oder auf zwei oder mehr Sicherungsspeicher verteilen.
-
Rufen Sie den Status Ihrer NooBaa-Instanz ab. Bei Clustern in IBM Cloud verwenden Sie den Namensbereich
openshift-storage
als Ziel.noobaa status -n openshift-storage
-
Stellen Sie sicher, dass Sie über mindestens zwei Sicherungsspeicher verfügen.
noobaa backingstore list -n openshift-storage
-
Erstellen Sie eine Bucket-Klasse, die zwei Ihrer Sicherungsspeicher verwendet und über eine
Mirror
verfügt, um Objekte in zwei oder mehr Sicherungsspeichern zu spiegeln.noobaa bucketclass create <bucketclass-name> --backingstores=[<backingstore_one>,<backingstore_two>] --placement='<placement>' -n <namespace>
-
Optional Sie können eine Bucket-Klasse auch mit Hilfe einer YAML-Konfigurationsdatei erstellen.
apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: mirror-bucket-class namespace: openshift-storage spec: placementPolicy: tiers: - backingStores: - backing-store-one - backing-store-two placement: Mirror
Erstellen einer Speicherklasse
Nachdem Sie Sicherungsspeicher und eine Bucket-Klasse erstellt haben, erstellen Sie eine Speicherklasse, um die Ressourcen Ihrer Bucket-Klasse in allen Namensbereichen Ihres Clusters verfügbar zu machen.
- Erstellen Sie eine YAML-Speicherklassendatei, die einen Namen für Ihre Speicherklasse im Format
<name>-noobaa.noobaa.io
, den Namen der Bucketklasse, die Sie verwenden möchten, und den Bereitsteller enthält, der aufopenshift-storage.noobaa.io/obc
festgelegt ist.metadata: name: <name>-noobaa.noobaa.io parameters: bucketclass: <bucket-class-name> provisioner: openshift-storage.noobaa.io/obc reclaimPolicy: Delete volumeBindingMode: Immediate
- Erstellen Sie die Speicherklasse in Ihrem Cluster.
oc create -f sc.yaml
- Überprüfen Sie, ob die Speicherklasse erstellt wurde.
oc get sc
Erstellen eines Objekt-Bucket-Claims
Nachdem Sie Sicherungsspeicher und eine Bucket-Klasse erstellt haben, können Sie einen Objekt-Bucket-Claim erstellen, mit dem Sie Speicherressourcen für Ihre s3-Anwendungen beanspruchen können.
- Legen Sie eine YAML-Datei für einen Objekt-Bucket-Claim an, der auf die zuvor erstellte Bucket-Klasse verweist.
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: cos-obc spec: storageClassName: cos-noobaa.noobaa.io bucketName: cos-bucket
- Erstellen Sie den Objekt-Bucket-Claim in Ihrem Cluster.
oc apply -f obc.yaml
- Überprüfen Sie, ob der OBC erstellt wurde.
noobaa obc list
- Listen Sie die geheimen Schlüssel und Config-Maps in Ihrem Cluster auf und überprüfen Sie, ob die entsprechenden geheimen Schlüssel und Config-Maps für Ihren OBC erstellt wurden.
oc get secrets | grep <obc-name> && oc get cm | grep <obc-name>
Bereitstellen einer s3-App im Multi-Cloud-Objekt-Gateway
- Erstellen Sie eine YAML-Datei für die App, die auf den geheimen Schlüssel und die Config-Map aus Ihrem OBC verweist. Die folgende Beispiel-App verwendet das Image
banst/awscli
und konfiguriert die AWS-CLI.apiVersion: v1 kind: Pod metadata: name: app labels: app: app spec: containers: - name: app envFrom: - secretRef: name: <secret-name> - configMapRef: name: <config-map-name> image: banst/awscli command: - sh - "-c" - | echo "----> Configuring S3 endpoint ..."; pip install awscli-plugin-endpoint; aws configure set plugins.endpoint awscli_plugin_endpoint; aws configure set s3.endpoint_url https://s3.openshift-storage.svc; echo "----> Configuring certificates ..."; aws configure set ca_bundle /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt; echo "----> Copying files ..."; aws s3 cp --recursive /etc s3://$BUCKET_NAME; echo "----> List files ..."; aws s3 ls $BUCKET_NAME; echo "----> Done.";
- Erstellen Sie die App in Ihrem Cluster.
oc create -f app.yaml
- Überprüfen Sie, ob Ihre App ausgeführt wird.
oc get pods