Définition de quotas de capacité pour les applications qui utilisent IBM Cloud Object Storage
Cloud privé virtuel Infrastructure classique
Avec IBM Cloud Object Storage, vous pouvez provisionner dynamiquement des buckets pour les applications s'exécutant dans vos clusters Red Hat OpenShift on IBM Cloud. Vous pouvez également définir de manière dynamique des quotas de capacité sur ces compartiments lors de la mise à disposition. Les quotas peuvent vous aider à gérer les ressources utilisées par vos charges de travail tout en évitant les frais inutiles.
Objectifs
Dans ce tutoriel, vous installez le plug-in Object Storage dans votre cluster et vous activez des quotas pour les réservations de volume persistant créées avec le plug-in.
Ensuite, vous créez une PVC qui crée dynamiquement un compartiment avec une limite de quota dans votre instance Object Storage.
Après cela, vous téléchargez un fichier dans votre compartiment et déployez une application simple dans votre cluster qui monte le compartiment et imprime le contenu de ce fichier.
Prérequis
Avant de commencer ce tutoriel, assurez-vous d'avoir créé ou installé les ressources et outils suivants.
- Un compte IBM Cloud. Pour plus d'informations, voir Création d'un compte.
- Les outils de l'interface de ligne de commande, y compris l'interface de ligne de commande IBM Cloud, le plug-in de l'interface de ligne de commande du service Containers et l'interface de ligne de commande Helm. Pour plus d'informations, voir Initiation à l'interface de ligne de commande IBM Cloud.
- Un cluster Red Hat OpenShift on IBM Cloud. Si vous disposez d'un cluster VPC, assurez-vous que votre VPC dispose d'une passerelle publique. Pour plus d'informations, voir Création de clusters
- Une instance Object Storage dans la même région que votre cluster. Pour plus d'informations, voir Mise à disposition d'une instance de Object Storage.
Création d'un ensemble d'identifiants de service
-
Procédez comme suit pour créer un ensemble de données d'identification de service HMAC pour votre Object Storage. Notez que les données d'identification que vous créez doivent avoir le rôle Responsable pour créer des compartiments.
-
Après avoir créé un ensemble de données d'identification de service HMAC, passez en revue les détails de vos données d'identification et notez
apikey,access_key_idetsecret_access_key. Sauvegardez ces valeurs pour l'étape suivante.
Création d'un secret pour stocker vos informations d'identification
- Créez un secret à l'aide des
apikey,access_key_idetsecret_access_keyà partir de vos données d'identification de service.Exemple de sortieoc create secret generic my-cos-secret --type=ibm/ibmc-s3fs --from-literal=access-key=ACCESS-KEY --from-literal=secret-key=SECRET-KEY --from-literal=res-conf-apikey=API-KEYsecret/my-cos-secret created - Vérifier que le secret a été créé.
Exemple de sortieoc get secrets | grep my-cosmy-cos-secret ibm/ibmc-s3fs 3 11m
Installation du plug-in
Lorsque vous installez le plug-in dans votre cluster, veillez à spécifier l'option --set quotaLimit=true. La spécification de cette option signifie que tous les compartiments que vous créez avec des réservations de volume persistant
ont une limite de quota égale à la taille de stockage dans la réservation de volume persistant.
-
Suivez les étapes pour installer le plug-in et activer les limites de quota. Si vous avez déjà installé le plug-in dans votre cluster, vous pouvez ignorer cette étape. Pour voir si le plug-in est déjà installé, suivez l'étape suivante.
-
Vérifiez que le plug-in est installé en répertoriant les pods de pilote.
oc get pods -n ibm-object-s3fs | grep objectExemple de sortie
ibmcloud-object-storage-driver-k9x4l 1/1 Running 0 6m52s ibmcloud-object-storage-driver-kj9m6 1/1 Running 0 6m52s ibmcloud-object-storage-driver-l8gqk 1/1 Running 0 6m52s ibmcloud-object-storage-plugin-576fb8bd7-sxlkb 1/1 Running 0 6m52s
Mise à disposition dynamique d'un compartiment avec un quota
Vous pouvez utiliser la mise à disposition dynamique pour créer automatiquement un compartiment Object Storage lorsque vous créez une réservation de volume persistant.
-
Copiez la configuration de réservation de volume persistant suivante et sauvegardez-la dans un fichier appelé
pvc.yaml. Cet exemple de réservation de volume persistant crée automatiquement un compartiment avec un quota égal à20Gi.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: my-cos-pvc namespace: default annotations: ibm.io/auto-create-bucket: "true" ibm.io/auto-delete-bucket: "true" ibm.io/secret-name: "my-cos-secret" ibm.io/quota-limit: "true" spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: ibmc-s3fs-standard-cross-region -
Créez la PVC dans votre cluster.
oc apply -f pvc.yamlExemple de sortie
persistentvolumeclaim/my-cos-pvc created -
Répertoriez vos réservations de volume persistant et vérifiez que le
my-cos-pvcest à l'étatBound.NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE my-cos-pvc Bound pvc-64a4e0c9-b5ec-40e3-8b7e-77ff47ae6c5e 20Gi RWO ibmc-s3fs-standard-cross-region 6s -
Accédez à votre instance Object Storage dans la console et cliquez sur l'onglet Compartiments.
-
Passez en revue les détails du compartiment créé automatiquement. Le nom du compartiment est au format
tmp-s3fs-XXXX. -
Cliquez sur le compartiment
tmp-s3fs-XXXX, puis sur l'onglet Configuration. -
Dans la page Configuration, recherchez la section Application des quotas. Notez que le compartiment a été créé automatiquement avec un quota égal à la taille que vous avez spécifiée dans la réservation de volume persistant. Dans cet exemple, la valeur était
20Gi.
Téléchargement d'un fichier dans votre compartiment
-
Enregistrez la configuration Pod suivante dans un fichier appelé
pod.yaml.apiVersion: v1 kind: Pod metadata: name: cat-test-file spec: containers: - name: app image: nginx volumeMounts: - name: my-vol mountPath: "/mnt" command: ["/bin/sh"] args: ["-c", "cat mnt/pod.yaml && sleep 5 && exit"] volumes: - name: my-vol persistentVolumeClaim: claimName: my-cos-pvc -
Accédez à votre instance Object Storage dans la console et cliquez sur l'onglet Compartiments.
-
Cliquez sur le compartiment
tmp-s3fs-XXXX, puis sur Télécharger. -
Téléchargez le fichier
pod.yamlque vous avez sauvegardé précédemment.
Création d'une application qui monte le compartiment
- Copiez la configuration de pod suivante et sauvegardez-la dans un fichier appelé
pod.yaml. Cet exemple de pod monte le compartiment qui a été créé par la PVCmy-cos-pvcet imprime le contenu du fichierpod.yamlque vous avez téléchargé précédemment.apiVersion: v1 kind: Pod metadata: name: cat-test-file spec: containers: - name: app image: nginx volumeMounts: - name: my-vol mountPath: "/mnt" command: ["/bin/sh"] args: ["-c", "cat mnt/pod.yaml && sleep 5 && exit"] volumes: - name: my-vol persistentVolumeClaim: claimName: my-cos-pvc - Créez le pod dans votre cluster.
Exemple de sortieoc apply -f pod.yamlpod/cat-test-file created - Obtenez les journaux du pod
cat-test-file. Dans cet exemple, les journaux contiennent le contenu imprimé du fichierpod.yamlque vous avez téléchargé précédemment.apiVersion: v1 kind: Pod metadata: name: cat-test-file spec: containers: - name: app image: nginx volumeMounts: - name: my-vol mountPath: "/mnt" command: ["/bin/sh"] args: ["-c", "cat mnt/pod.yaml && sleep 5 && exit"] volumes: - name: my-vol persistentVolumeClaim: claimName: my-cos-pvc
Réviser
Dans ce tutoriel, vous avez installé le plug-in Object Storage dans votre cluster et activé des quotas pour toutes les réservations de volume persistant créées avec le plug-in. Vous avez ensuite créé une réservation de volume persistant qui a créé dynamiquement un compartiment avec une limite de quota dans votre instance Object Storage. Après cela, vous avez déployé une application simple qui imprime le contenu d'un fichier dans votre compartiment.
Etapes suivantes
- Configurez l'interface de ligne de commandeObject Storage pour qu'elle pointe vers votre compartiment.
- Utilisez les logiciels SDK Object Storage pour ajouter du stockage à vos applications.