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.
- Instale la CLI del operador deNooBaa.
- Ejecute el comando
noobaa backingstore createpara ver la lista de tipos de almacenamiento de respaldo soportados.
Salida de ejemplonoobaa 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 - 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> - 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.
-
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 -
Compruebe que tiene al menos dos almacenes de respaldo.
noobaa backingstore list -n openshift-storage -
Cree una clase de grupo que use dos almacenes de respaldo y que tenga una política de
Mirrorpara duplicar objetos en dos o más almacenamientos de respaldo.noobaa bucketclass create <bucketclass-name> --backingstores=[<backingstore_one>,<backingstore_two>] --placement='<placement>' -n <namespace> -
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.
- 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 enopenshift-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 - Cree una clase de almacenamiento en el clúster.
oc create -f sc.yaml - 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.
- 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 - Cree la reclamación de grupo de objetos en el clúster.
oc apply -f obc.yaml - Compruebe que se ha creado la OBC.
noobaa obc list - 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
- 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/awscliy 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."; - Cree la app en el clúster.
oc create -f app.yaml - Compruebe que la aplicación está ejecutando.
oc get pods