Verwaltung des Multi-Cloud-Objekt-Gateways
Sie können NooBaa verwenden, um Ihre S3-compatible Objektspeicherressourcen zu verwalten, z. B. IBM Object Storage, Amazon S3 oder Azure Blob-Speicher. 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 für die Verwaltung Ihrer S3-compatible Dienste und Buckets. Wenn Sie einen Sicherungsspeicher erstellen, geben Sie Ihre S3 Dienstanmeldeinformationen an, z. B. Ihre Zugriffsschlüssel-ID, Ihren geheimen Zugriffsschlüssel und den Endpunkt für Ihren Objektspeicherdienst. Nachdem Sie Ihrem Cluster Backing Stores hinzugefügt haben, können Sie Bucket-Klassen erstellen, mit denen Sie Datenverbundrichtlinien für Ihre S3-compatible Speicherdienste 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 beliebigen S3-compatible Objektspeicher verwenden, z. B. Amazon S3 oder IBM Cloud Object Storage.
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 createaus, um eine Liste der unterstützten Sicherungsspeichertypen anzuzeigen.
Beispielausgabenoobaa backingstore createCreate 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 IBM Cloud Object Storage einrichten möchten, holen Sie sich Ihre HMAC-Zugangsdaten. 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-storageals 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
Mirrorverfü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/obcfestgelegt ist.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: <name>-noobaa.noobaa.io provisioner: openshift-storage.noobaa.io/obc parameters: bucketclass: <bucket-class-name> 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/awscliund 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