Gestión de Multi-Cloud Object Gateway

Puede utilizar NooBaa para gestionar sus recursos de almacenamiento de objetos S3-compatible, como IBM Object Storage, Amazon S3 o Azure Blob storage. Con NooBaa, también se puede crear y gestionar el almacenamiento de objetos de forma homogénea en clústeres y zonas.

Configuración de almacenamientos de respaldo con la CLI de NooBaa

Los almacenes de respaldo son recursos de NooBaa para gestionar sus servicios y buckets de S3-compatible. Cuando se crea un almacén de respaldo, se proporcionan las credenciales del servicio S3, como el ID de la clave de acceso, la clave de acceso secreta y el punto final del servicio de almacenamiento de objetos. Después de añadir almacenes de respaldo a su clúster, puede crear clases de bucket, que le permiten configurar políticas de federación de datos para sus servicios de almacenamiento de S3-compatible.

Una vez desplegado ODF, se pueden configurar más almacenes de respaldo en el clúster de almacenamiento. Puede crear un almacén de respaldo utilizando cualquier almacén de objetos de S3-compatible, como Amazon S3 o IBM Cloud Object Storage.

Los almacenes de respaldo también se pueden crear y gestionar en la consola web de Red Hat OpenShift.

Para añadir un almacén de respaldo al clúster de almacenamiento usando la CLI de NooBaa:

Acceda al clúster de Red Hat OpenShift.

  1. Instale la CLI del operador deNooBaa.
  2. Ejecute el comando noobaa backingstore create para ver la lista de tipos de almacenamiento de respaldo soportados.
    noobaa backingstore create
    
    Salida de ejemplo
    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. Obtenga los detalles del servicio que desee usar. Si desea configurar IBM Cloud Object Storage, obtenga sus credenciales HMAC. Para obtener información adicional consultando Uso de credenciales HMAC. El siguiente ejemplo de comando muestra los parámetros de configuración necesarios para crear un almacén de respaldo usando una instancia de servicio de IBM Cloud Object Storage.
    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. Obtenga los detalles del almacén de respaldo.
    noobaa backingstore status <backing-store-name> -n openshift-storage
    

Creación de una clase de grupo que usa dos almacenes de respaldo con una política de colocación de duplicados

Una vez instalado ODF y configurados al menos dos almacenes de respaldo, se crea una clase de grupo que usa varios almacenes de respaldo. Una clase de grupo permite configurar políticas de federación de datos en los almacenes de respaldo. Luego, cuando las aplicaciones escriban objetos en el grupo, los objetos se podrán duplicar o distribuir entre dos o más almacenes de respaldo.

  1. Instala la CLI NooBaa.

  2. Obtenga el estado de la instancia NooBaa. En los clústeres en IBM Cloud, diríjase al espacio de nombres openshift-storage.

    noobaa status -n openshift-storage
    
  3. Compruebe que tiene al menos dos almacenes de respaldo.

    noobaa backingstore list -n openshift-storage
    
  4. Cree una clase de grupo que use dos almacenes de respaldo y que tenga una política de Mirror para duplicar objetos en dos o más almacenamientos de respaldo.

    noobaa bucketclass create <bucketclass-name> --backingstores=[<backingstore_one>,<backingstore_two>] --placement='<placement>' -n <namespace>
    
  5. Opcional También se puede crear una clase de grupo usando un archivo de configuración YAML.

    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
    

Creación de una clase de almacenamiento

Una vez creados los almacenes de respaldo y la clase de grupo, cree una clase de almacenamiento para hacer que los recursos de clase de grupo estén disponibles en los espacios de nombres del clúster.

  1. Cree un archivo YAML de clase de almacenamiento que contenga un nombre para la clase de almacenamiento con el formato <name>-noobaa.noobaa.io, el nombre de la clase de grupo que desea utilizar y el suministrador establecido en openshift-storage.noobaa.io/obc.
    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
    
  2. Cree una clase de almacenamiento en el clúster.
    oc create -f sc.yaml
    
  3. Compruebe que se ha creado la clase de almacenamiento.
    oc get sc
    

Creación de una reclamación de grupo de objetos (OBC)

Una vez creados los almacenes de respaldo y la clase de grupo, se podrá crear una reclamación de grupo de objetos que se puede usar para reclamar recursos de almacenamiento para las aplicaciones s3.

  1. Cree un archivo YAML de reclamación de grupo de objetos que referencie la clase de grupo creada anteriormente.
    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: cos-obc
    spec:
      storageClassName: cos-noobaa.noobaa.io
      bucketName: cos-bucket
    
  2. Cree la reclamación de grupo de objetos en el clúster.
    oc apply -f obc.yaml
    
  3. Compruebe que se ha creado la OBC.
    noobaa obc list
    
  4. Liste los secretos y los mapas de configuración del clúster y compruebe que se han creado los correspondientes secreto y mapa de configuración de la OBC.
    oc get secrets | grep <obc-name> && oc get cm | grep <obc-name>
    

Despliegue de una aplicación s3 en Multicloud Object Gateway

  1. Cree un archivo YAML de aplicación que referencie el secreto y el mapa de configuración de la OBC. La siguiente aplicación de ejemplo usa la imagen banst/awscli y configura la CLI de AWS.
    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. Cree la app en el clúster.
    oc create -f app.yaml
    
  3. Compruebe que la aplicación está ejecutando.
    oc get pods