IBM Cloud Docs
Verwaltung des Multi-Cloud-Objekt-Gateways

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.

  1. Installieren Sie die NooBaa Operator-CLI.
  2. Führen Sie den Befehl noobaa backingstore create aus, um eine Liste der unterstützten Sicherungsspeichertypen anzuzeigen.
    noobaa backingstore create
    
    Beispielausgabe
    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
    
  3. 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>
    
  4. 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.

  1. Installieren Sie die NooBaa CLI.

  2. 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
    
  3. Stellen Sie sicher, dass Sie über mindestens zwei Sicherungsspeicher verfügen.

    noobaa backingstore list -n openshift-storage
    
  4. 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>
    
  5. 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.

  1. 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 auf openshift-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
    
  2. Erstellen Sie die Speicherklasse in Ihrem Cluster.
    oc create -f sc.yaml
    
  3. Ü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.

  1. 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
    
  2. Erstellen Sie den Objekt-Bucket-Claim in Ihrem Cluster.
    oc apply -f obc.yaml
    
  3. Überprüfen Sie, ob der OBC erstellt wurde.
    noobaa obc list
    
  4. 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

  1. 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.";
    
  2. Erstellen Sie die App in Ihrem Cluster.
    oc create -f app.yaml
    
  3. Überprüfen Sie, ob Ihre App ausgeführt wird.
    oc get pods