Gestion de la passerelle Multi-Cloud Object Gateway
Vous pouvez utiliser NooBaa pour gérer vos ressources de stockage d'objets compatibles s3, comme le stockage Object Storage, AWS s3 ou Azure Blob. Avec NooBaa, vous pouvez également créer et gérer votre stockage d'objets de manière cohérente entre les clusters et les zones.
Configuration des magasins de sauvegarde à l'aide de l'interface de ligne de commande NooBaa
Les magasins de stockage sont des ressources NooBaa pour la gestion de vos compartiments et services compatibles s3. Lorsque vous créez un magasin de sauvegarde, vous fournissez vos données d'identification de service s3, tels votre ID de clé d'accès, votre clé d'accès secrète et le noeud final de votre service de stockage d'objets. Une fois que vous avez ajouté des magasins de sauvegarde à votre cluster, vous pouvez créer des classes de compartiment qui vous permettent de configurer des règles de fédération de données pour vos services de stockage compatibles s3.
Après avoir déployé ODF, vous pouvez configurer d'autres magasins de sauvegarde dans votre cluster de stockage. Vous pouvez créer un magasin de sauvegarde à l'aide de n'importe quel conteneur d'objets compatible s3, par exemple AWS ou IBM Cloud Object Storage.
Vous pouvez également créer et gérer vos magasins de sauvegarde dans la console Web Red Hat OpenShift.
Pour ajouter un magasin de sauvegarde à votre cluster de stockage à l'aide de l'interface de ligne de commande NooBaa :
Accédez à votre cluster Red Hat OpenShift.
- Installez l'interface de ligne de commande de l'opérateurNooBaa.
- Exécutez la commande
noobaa backingstore create
pour afficher la liste des types de magasin de sauvegarde pris en charge.
Exemple de sortienoobaa 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
- Obtenez les détails du service que vous souhaitez utiliser. Si vous souhaitez configurer un IBM Cloud Object Storage, obtenez vos données d'identification HMAC. Pour plus d'informations, voir Utilisation des données d'identification HMAC.
L'exemple de commande ci-après illustre les paramètres de configuration requis pour créer un magasin de sauvegarde à l'aide d'une instance de service 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>
- Obtenez les détails de votre magasin de sauvegarde.
noobaa backingstore status <backing-store-name> -n openshift-storage
Création d'une classe de compartiment qui utilise deux magasins de sauvegarde avec une règle de placement en miroir
Une fois que vous avez installé ODF et configuré au moins deux magasins de sauvegarde, vous pouvez créer une classe de compartiment qui utilise plusieurs magasins de sauvegarde. Les classes de compartiment vous permettent de configurer des règles de fédération de données dans vos magasins de sauvegarde. Ensuite, lorsque vos applications écrivent des objets dans votre compartiment, vous pouvez mettre en miroir ou répartir les objets entre deux magasins de sauvegarde ou plus.
-
Obtenez le statut de votre instance NooBaa. Pour les clusters dans IBM Cloud, ciblez l'espace de noms
openshift-storage
.noobaa status -n openshift-storage
-
Vérifiez que vous disposez d'au moins deux magasins de sauvegarde.
noobaa backingstore list -n openshift-storage
-
Créez une classe de compartiment qui utilise deux de vos magasins de sauvegarde et qui dispose d'une règle
Mirror
pour mettre des objets en miroir sur au moins deux magasins de sauvegarde.noobaa bucketclass create <bucketclass-name> --backingstores=[<backingstore_one>,<backingstore_two>] --placement='<placement>' -n <namespace>
-
Facultatif Vous pouvez également créer une classe de compartiment à l'aide d'un fichier de configuration 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
Création d'une classe de stockage
Après avoir créé des magasins de sauvegarde et une classe de compartiment, créez une classe de stockage pour que vos ressources de classe de compartiment soient disponibles dans les espaces de noms de votre cluster.
- Créez un fichier YAML de classe de stockage qui contient un nom pour votre classe de stockage au format
<name>-noobaa.noobaa.io
, le nom de la classe de compartiment que vous souhaitez utiliser et le provisionneur défini suropenshift-storage.noobaa.io/obc
.metadata: name: <name>-noobaa.noobaa.io parameters: bucketclass: <bucket-class-name> provisioner: openshift-storage.noobaa.io/obc reclaimPolicy: Delete volumeBindingMode: Immediate
- Créez la classe de stockage dans votre cluster.
oc create -f sc.yaml
- Vérifiez que la classe de stockage a été créée.
oc get sc
Création d'une réclamation de compartiment d'objets (OBC, Object Bucket Claim)
Après avoir créé des magasins de sauvegarde et une classe de compartiment, créez une réclamation de compartiment d'objets que vous pouvez utiliser pour réclamer des ressources de stockage pour vos applications s3.
- Créez un fichier YAML de réclamation de compartiment d'objets qui référence la classe de compartiment que vous avez précédemment créée.
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: cos-obc spec: storageClassName: cos-noobaa.noobaa.io bucketName: cos-bucket
- Créez la réclamation de compartiment d'objets dans votre cluster.
oc apply -f obc.yaml
- Vérifiez que la réclamation de compartiment d'objets (OBC) a été créée.
noobaa obc list
- Répertoriez les secrets et les mappes de configuration de votre cluster et vérifiez que la mappe de configuration et le secret correspondants pour votre réclamation de compartiment d'objets ont été créés.
oc get secrets | grep <obc-name> && oc get cm | grep <obc-name>
Déploiement d'une application s3 dans la passerelle Multicloud Object Gateway
- Créez un fichier YAML d'application qui référence le secret et la mappe de configuration issus de votre réclamation de compartiment d'objets (OBC). L'exemple d'application suivant utilise l'image
banst/awscli
et configure l'interface de ligne de commande 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.";
- Créez l'application dans votre cluster.
oc create -f app.yaml
- Vérifiez que votre application est en cours d'exécution.
oc get pods