Establecimiento de cuotas de capacidad para apps que utilizan IBM Cloud Object Storage
Nube privada virtual Infraestructura clásica
Con IBM Cloud Object Storage, puede aprovisionar dinámicamente cubos para las aplicaciones que se ejecutan en sus clústeres de Red Hat OpenShift on IBM Cloud. También puede establecer dinámicamente cuotas de capacidad en esos grupos durante el suministro. Las cuotas pueden ayudarle a gestionar los recursos que utilizan sus cargas de trabajo, evitando al mismo tiempo cargos innecesarios.
Objetivos
En esta guía de aprendizaje, instala el plugin Object Storage en el clúster y habilita las cuotas para cualquier reclamación de volumen persistente (PVC) creada con el plugin.
A continuación, cree una PVC que cree dinámicamente un grupo con un límite de cuota en la instancia de Object Storage.
Después, cargue un archivo en el grupo y despliegue una app simple en el clúster que monte el grupo e imprima el contenido de dicho archivo.
Requisitos previos
Antes de comenzar este tutorial, asegúrese de haber creado o instalado los siguientes recursos y herramientas.
- Una cuenta de IBM Cloud. Para obtener más información, consulte Creación de una cuenta.
- Las herramientas de CLI que incluyen la CLI de IBM Cloud, el plugin de CLI del servicio de contenedores y la CLI de Helm. Para obtener más información, consulte Iniciación a la CLI de IBM Cloud.
- Un clúster Red Hat OpenShift on IBM Cloud. Si tiene un clúster VPC, asegúrese de que su VPC tiene una puerta de enlace pública conectada. Para obtener más información, consulte Creación de clústeres
- Una instancia de Object Storage en la misma región que el clúster. Para obtener más información, consulte Suministrar una instancia de Object Storage.
Creación de un conjunto de credenciales de servicio
-
Siga los pasos para crear un conjunto de credenciales de servicio HMAC para la instancia de Object Storage. Tenga en cuenta que las credenciales que cree deben tener el rol Gestor para crear grupos.
-
Después de crear un conjunto de credenciales de servicio HMAC, revise los detalles de las credenciales y anote
apikey,access_key_idysecret_access_key. Guarde estos valores para el paso siguiente.
Crear un secreto para almacenar sus credenciales
- Cree un secreto utilizando
apikey,access_key_idysecret_access_keya partir de las credenciales de servicio.Salida de ejemplooc 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 - Verifica que se ha creado el secreto.
Salida de ejemplooc get secrets | grep my-cosmy-cos-secret ibm/ibmc-s3fs 3 11m
Instalación del complemento
Cuando instale el plugin en el clúster, asegúrese de especificar la opción --set quotaLimit=true. Especificar esta opción significa que los grupos que cree con PVC tienen un límite de cuota igual al tamaño de almacenamiento en la
PVC.
-
Siga los pasos para instalar el plugin y habilitar los límites de cuota. Si ya ha instalado el plugin en el clúster, puede omitir este paso. Para ver si el plugin ya está instalado, siga el paso siguiente.
-
Verifique que el plugin está instalado listando los pods de controlador.
oc get pods -n ibm-object-s3fs | grep objectSalida de ejemplo
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
Suministro dinámico de un grupo con una cuota
Puede utilizar el suministro dinámico para crear automáticamente un grupo Object Storage al crear una PVC.
-
Copie la siguiente configuración de PVC y guárdela en un archivo denominado
pvc.yaml. Esta PVC de ejemplo crea automáticamente un grupo con una cuota igual a20Gi.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 -
Cree la PVC en el clúster.
oc apply -f pvc.yamlSalida de ejemplo
persistentvolumeclaim/my-cos-pvc created -
Liste las PVC y verifique que el
my-cos-pvcestá en el estadoBound.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 -
Vaya a la instancia de Object Storage en la consola y pulse el separador Grupos.
-
Revise los detalles del grupo creado automáticamente. El nombre de grupo tiene el formato
tmp-s3fs-XXXX. -
Pulse el grupo
tmp-s3fs-XXXXy, a continuación, pulse la pestaña Configuración. -
En la página Configuración, busque la sección Imposición de cuota. Tenga en cuenta que el grupo se ha creado automáticamente con una cuota igual al tamaño que ha especificado en la PVC. En este ejemplo, el valor era
20Gi.
Carga de un archivo en el grupo
-
Guarde la siguiente configuración del Pod en un archivo llamado
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 -
Vaya a la instancia de Object Storage en la consola y pulse el separador Grupos.
-
Pulse el grupo
tmp-s3fs-XXXXy, a continuación, pulse Cargar. -
Cargue el archivo
pod.yamlque ha guardado anteriormente.
Creación de una app que monta el grupo
- Copie la siguiente configuración de pod y guárdela en un archivo denominado
pod.yaml. Este pod de ejemplo monta el grupo creado por la PVC demy-cos-pvce imprime el contenido del archivopod.yamlque ha cargado anteriormente.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 - Cree el pod en el clúster.
Salida de ejemplooc apply -f pod.yamlpod/cat-test-file created - Obtenga los registros del pod
cat-test-file. En este ejemplo, los registros contienen el contenido impreso del archivopod.yamlque ha cargado anteriormente.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
Revisar
En esta guía de aprendizaje, ha instalado el plug-in Object Storage en el clúster y ha habilitado las cuotas para las PVC creadas con el plug-in. A continuación, ha creado una PVC que ha creado dinámicamente un grupo con un límite de cuota en la instancia de Object Storage. Después de eso, ha desplegado una app simple que imprime el contenido de un archivo en el grupo.
Próximos pasos
- Configure la CLI deObject Storage para que apunte a su grupo.
- Utilice los SDK de Object Storage para añadir almacenamiento a sus apps.