Impostazione delle quote di capacità per le applicazioni che utilizzano IBM Cloud Object Storage
Virtual Private Cloud Infrastruttura classica
Con IBM Cloud Object Storage è possibile effettuare il provisioning dinamico dei bucket per le applicazioni in esecuzione nei cluster Red Hat OpenShift on IBM Cloud. È inoltre possibile impostare dinamicamente le quote di capacità su tali bucket durante il provisioning. Le quote possono aiutarti a gestire le risorse che i tuoi carichi di lavoro utilizzano, evitando anche addebiti non necessari.
Obiettivi
In questa esercitazione, installa il plug-in Object Storage nel tuo cluster e abilita le quote per tutte le attestazioni del volume persistente (o PVC, persistent volume claim) create con il plug - in.
Quindi, crea una PVC che crea dinamicamente un bucket con un limite di quota nella tua istanza Object Storage.
Dopo di che, carichi un file nel tuo bucket e distribuisci un'applicazione semplice nel cluster che monta il bucket e stampa il contenuto di quel file.
Prerequisiti
Prima di iniziare questa esercitazione, assicuratevi di aver creato o installato le risorse e gli strumenti seguenti.
- Un account IBM Cloud. Per ulteriori informazioni, vedi Creazione di un account.
- Gli strumenti CLI inclusi la CLI IBM Cloud, il plug-in CLI del servizio Containers e la CLI Helm. Per ulteriori informazioni, vedi Introduzione alla CLI IBM Cloud.
- Un cluster Red Hat OpenShift on IBM Cloud. Se si dispone di un cluster VPC, assicurarsi che il VPC abbia un gateway pubblico collegato. Per ulteriori informazioni, vedi Creazione di cluster
- Un'istanza Object Storage nella stessa regione del tuo cluster. Per ulteriori informazioni, vedi Provisioning di un'istanza di Object Storage.
Creazione di un set di credenziali di servizio
-
Segui la procedura per creare una serie di credenziali del servizio HMAC per la tua istanza Object Storage. Nota che le credenziali che crei devono avere il ruolo di Gestore per creare i bucket.
-
Dopo aver creato una serie di credenziali del servizio HMAC, esamina i dettagli delle tue credenziali e prendi nota di
apikey,access_key_idesecret_access_key. Salvare questi valori per il passo successivo.
Creare un segreto per memorizzare le credenziali
- Crea un segreto utilizzando
apikey,access_key_idesecret_access_keydalle credenziali del servizio.Output di esempiooc 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 - Verificare che il segreto sia stato creato.
Output di esempiooc get secrets | grep my-cosmy-cos-secret ibm/ibmc-s3fs 3 11m
Installazione del plug-in
Quando si installa il plug-in nel cluster, assicurarsi di specificare l'opzione --set quotaLimit=true. Se si specifica questa opzione, tutti i bucket creati con le PVC hanno un limite di quota uguale alla dimensione di archiviazione
nella PVC.
-
Attieniti alla procedura per installare il plug-in e attivare i limiti di quota. Se hai già installato il plug-in nel tuo cluster, puoi saltare questo passo. Per vedere se il plug-in è già installato, seguire il passo successivo.
-
Verificare che il plug-in sia installato elencando i pod del driver.
oc get pods -n ibm-object-s3fs | grep objectOutput di esempio
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
Provisioning dinamico di un bucket con una quota
Puoi utilizzare il provisioning dinamico per creare automaticamente un bucket Object Storage quando crei una PVC.
-
Copiare la seguente configurazione PVC e salvarla in un file denominato
pvc.yaml. Questa PVC di esempio crea automaticamente un bucket con una quota uguale 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 -
Crea la PVC nel tuo cluster.
oc apply -f pvc.yamlOutput di esempio
persistentvolumeclaim/my-cos-pvc created -
Elencare le PVC e verificare che
my-cos-pvcsi trovi nello statoBound.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 -
Vai alla tua istanza Object Storage nella console e fai clic sulla scheda Buckets.
-
Esaminare i dettagli del bucket creato automaticamente. Il nome bucket è nel formato
tmp-s3fs-XXXX. -
Fai clic sul bucket
tmp-s3fs-XXXX, quindi fai clic sulla scheda Configurazione. -
Nella pagina Configurazione, cercare la sezione Applicazione quota. Nota che il bucket è stato creato automaticamente con una quota uguale a quella che hai specificato nella PVC. In questo esempio, il valore era
20Gi.
Caricamento di un file nel bucket
-
Salvare la seguente configurazione pod in un file denominato
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 -
Vai alla tua istanza Object Storage nella console e fai clic sulla scheda Buckets.
-
Fai clic sul bucket
tmp-s3fs-XXXX, quindi su Upload. -
Caricare il file
pod.yamlsalvato in precedenza.
Creazione di un'applicazione che monta il bucket
- Copiare la seguente configurazione pod e salvarla in un file denominato
pod.yaml. Questo pod di esempio monta il bucket creato dalla PVCmy-cos-pvce stampa il contenuto del filepod.yamlche hai caricato in precedenza.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 - Creare il pod nel cluster.
Output di esempiooc apply -f pod.yamlpod/cat-test-file created - Ottieni i log del pod
cat-test-file. In questo esempio, i log contengono il contenuto stampato del filepod.yamlcaricato in precedenza.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
Riesamina
In questa esercitazione, hai installato il plug-in Object Storage nel tuo cluster e hai abilitato le quote per qualsiasi PVC creato con il plug - in. Quindi, hai creato una PVC che ha creato dinamicamente un bucket con un limite di quota nella tua istanza Object Storage. Dopodiché, hai distribuito una semplice applicazione che stampa il contenuto di un file nel bucket.
Passi successivi
- Configura la CLIObject Storage per puntare al tuo bucket.
- Utilizza gli SDK Object Storage per aggiungere archiviazione alle tue applicazioni.