Distribuzione di un'applicazione che utilizza COS
Crea un'attestazione del volume persistente (PVC, persistent volume claim) per eseguire il provisioning di IBM Cloud Object Storage per il tuo cluster.
A seconda delle impostazioni che scegli nella tua PVC, puoi eseguire il provisioning di IBM Cloud Object Storage nei seguenti modi:
- Provisioning dinamico: quando si crea il PVC, vengono creati automaticamente il volume persistente (PV) corrispondente e il bucket nell'istanza del servizio " IBM Cloud Object Storage ".
- Provisioning statico: nel proprio PVC è possibile fare riferimento a un bucket esistente nell'istanza del servizio " IBM Cloud Object Storage ". Quando crei la PVC, il PV corrispondente viene automaticamente creato e collegato al tuo bucket esistente in IBM Cloud Object Storage.
Prima di cominciare:
- Crea e prepara la tua istanza del servizio IBM Cloud Object Storage.
- Crea un segreto per archiviare le tue credenziali del servizio IBM Cloud Object Storage.
- Decidi in merito alla configurazione per il tuo IBM Cloud Object Storage.
Per aggiungere IBM Cloud Object Storage al tuo cluster:
-
Crea un file di configurazione per definire la tua attestazione del volume persistente (PVC, persistent volume claim). Se aggiungi le tue credenziali IBM Cloud Object Storage alle classi di archiviazione predefinite, non elencare il tuo segreto nella PVC.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: <name> # Enter the name of the PVC. namespace: <namespace> # Enter the namespace where you want to create the PVC. The PVC must be created in the same namespace where you created the Kubernetes secret for your service credentials and where you want to run your pod. annotations: ibm.io/auto-create-bucket: "<true_or_false>" ibm.io/auto-delete-bucket: "<true_or_false>" ibm.io/bucket: "<bucket_name>" ibm.io/object-path: "<bucket_subdirectory>" ibm.io/quota-limit: "true/false" # Disable or enable a quota limit for your PVC. To use this annotation you must specify the -set quotaLimit=true option during installation. ibm.io/endpoint: "https://<s3fs_service_endpoint>" ibm.io/tls-cipher-suite: "default" ibm.io/secret-name: "<secret_name>" # The name of your Kubernetes secret that you created. ibm.io/secret-namespace: "<secret-namespace>" # By default, the COS plug-in searches for your secret in the same namespace where you create the PVC. If you created your secret in a namespace other than the namespace where you want to create your PVC, enter the namespace where you created your secret. ibm.io/add-mount-param: "<option-1>,<option-2>" # s3fs mount options ibm.io/access-policy-allowed-ips: "XX.XXX.XX.XXX, XX.XX.XX.XXX, XX.XX.XX.XX" # A csv of allow listed IPs. ibm.io/bucket-versioning: "false" # Set to true to enable bucket versioning. spec: accessModes: - ReadWriteOnce resources: requests: storage: <size> storageClassName: <storage_class>ibm.io/auto-create-bucket-
- Scegli tra le seguenti opzioni.
true: Quando si crea il PVC, il PV e il bucket nell'istanza del servizio " IBM Cloud Object Storage " vengono creati automaticamente. Scegli questa opzione per creare un nuovo bucket nella tua istanza del servizio IBM Cloud Object Storage. Nota che le credenziali del servizio devono avere le autorizzazioni di Scrittore per creare automaticamente il bucket.false: Scegli questa opzione se desideri accedere ai dati contenuti in un bucket esistente. Quando si crea il PVC, il PV viene creato automaticamente e collegato al bucket specificato inibm.io/bucket.
ibm.io/auto-delete-bucket-
- Scegli tra le seguenti opzioni.
true: I tuoi dati, il bucket e il PV vengono rimossi automaticamente quando elimini il PVC. La tua istanza del servizio IBM Cloud Object Storage rimane e non viene eliminata. Se si sceglie di impostare questa opzione su “true”, è necessario impostare “ibm.io/auto-create-bucket: true” e “ibm.io/bucket: ""” in modo che il proprio bucket venga creato automaticamente con un nome nel formato “tmp-s3fs-xxxx”.false: Quando si elimina il PVC, il PV viene eliminato automaticamente, ma i dati e il bucket presenti nell'istanza del servizio IBM Cloud Object Storage rimangono. Per accedere ai tuoi dati, devi creare un nuovo PVC con il nome del tuo bucket esistente.
ibm.io/bucket-
- Scegli tra le seguenti opzioni.
- Se "
ibm.io/auto-create-bucket" è impostato su "true": inserisci il nome del bucket che desideri creare in " IBM Cloud Object Storage ". Se, inoltre, l'opzione "ibm.io/auto-delete-bucket" è impostata su "true", è necessario lasciare questo campo vuoto affinché al proprio bucket venga assegnato automaticamente un nome nel formato "tmp-s3fs-xxxx". Il nome deve essere univoco in IBM Cloud Object Storage. - Se l'opzione "
ibm.io/auto-create-bucket" è impostata su "false": inserire il nome del bucket esistente a cui si desidera accedere nel cluster.
ibm.io/object-path- Facoltativo; immetti il nome della sottodirectory esistente nel tuo bucket che vuoi montare. Utilizza questa opzione se vuoi montare solo una sottodirectory e non l'intero bucket. Per montare una sottodirectory, è necessario impostare
ibm.io/auto-create-bucket: "false"e specificare il nome del bucket inibm.io/bucket``. ibm.io/quota-limit-
- Per utilizzare questa annotazione, è necessario specificare l'opzione
--set quotaLimit=truedurante l'installazione. Se vuoi utilizzare questa annotazione, ma non hai specificato--set quotaLimit=truedurante l'installazione, reinstalla il grafico Helm. - Se l'opzione
ibm.io/quota-limitè impostata sutrue``, il PVC imposta una quantità massima di spazio di archiviazione (in byte) disponibile per il bucket in base alla dimensionestorage:specificata. - Se
ibm.io/quota-limitè impostato sufalse, la quota non viene applicata alla tua PVC, il che significa che la quantità effettiva di memoria in byte potrebbe superare ilstorage: <size>che hai specificato a seconda della tua applicazione.
- Per utilizzare questa annotazione, è necessario specificare l'opzione
ibm.io/endpoint- Se hai creato l'istanza del servizio " IBM Cloud Object Storage " in una posizione diversa dal tuo cluster, inserisci l'endpoint del servizio cloud privato o pubblico dell'istanza del servizio " IBM Cloud Object Storage "
che desideri utilizzare. Per ulteriori informazioni e una panoramica degli endpoint del servizio disponibili, vedi Ulteriori informazioni sull'endpoint.
Per impostazione predefinita, il plug-in
ibmcHelm rileva automaticamente la posizione del cluster e crea le classi di archiviazione utilizzando l'endpoint del servizio cloud privato IBM Cloud Object Storage corrispondente alla posizione del cluster. Se il cluster classico si trova in un'area metropolitana multizona, come ad esempiodal10, viene utilizzato l'endpoint del servizio cloud privato IBM Cloud Object Storage relativo all'area metropolitana multizona, ad esempio Dallas. Per verificare che l'endpoint del servizio nelle classi di archiviazione corrisponda all'endpoint dell'istanza del servizio, esegui il comandooc describe storageclass <storageclassname>. Assicurati di inserire l'endpoint del servizio nel formatohttps://<s3fs_private_service_endpoint>per gli endpoint dei servizi cloud privati, oppurehttp://<s3fs_public_service_endpoint>per gli endpoint dei servizi cloud pubblici. Se l'endpoint di servizio della classe di archiviazione corrisponde all'endpoint di servizio dell'istanza del servizio " IBM Cloud Object Storage ", non includere l'opzioneibm.io/endpointnel file YAML del PVC. ibm.io/add-mount-param- Immettere le opzioni di montaggio per i volumi Fuse s3fs. Ad esempio
ibm.io/add-mount-param: "del_cache,retries=6". Per un elenco di opzioni, vedere s3fs pagine man ibm.io/access-policy-allowed-ips- Immettere un elenco separato da virgole di IP che possono accedere ai volumi. Ad esempio,
ibm.io/access-policy-allowed-ips: "XX.XXX.XX.XXX, XX.XX.XX.XXX, XX.XX.XX.XX". storage- Nella sezione "Richieste di risorse specificate", inserisci la dimensione del tuo bucket IBM Cloud Object Storage in gigabyte. Lo spazio effettivo che utilizzi su IBM Cloud Object Storage potrebbe variare e viene addebitato in base al listino prezzi. Se hai abilitato le quote quando hai installato il plug-in, la quota per il tuo bucket è uguale a questa dimensione.
storageClassName-
- Scegli tra le seguenti opzioni.
- Se
ibm.io/auto-create-bucket: "true": inserisci la classe di archiviazione che desideri utilizzare per il tuo nuovo bucket. - Se
ibm.io/auto-create-bucket: "false": inserisci la classe di archiviazione utilizzata per creare il bucket esistente. - Se hai creato manualmente il bucket nella tua istanza del servizio IBM Cloud Object Storage oppure non ricordi quale classe di archiviazione hai utilizzato, individua la tua istanza del servizio nella dashboard IBM Cloud e verifica la classe e la posizione del tuo bucket esistente. Usa quindi una classe di archiviazione appropriata. L'endpoint API IBM Cloud Object Storage impostato nella tua classe di archiviazione è basato sulla regione in cui si trova il tuo cluster. Se desideri accedere a un bucket che si trova in una regione diversa da quella in cui è situato il tuo cluster, devi creare una classe di archiviazione personalizzata e utilizzare l'endpoint API appropriato per il tuo bucket.
ibm.io/secret-name- Immetti il nome del segreto che contiene le credenziali IBM Cloud Object Storage che hai creato in precedenza. Se aggiungi le tue credenzialiIBM Cloud Object Storage alle classi di archiviazione predefinite, non devi elencare i segreti nella PVC. Se vuoi integrare la crittografia Key Protect durante la creazione di nuovi bucket da PVC nel tuo cluster, devi includere il CRN della chiave root quando crei il tuo segreto IBM Cloud Object Storage. Nota che non puoi aggiungere la codifica Key Protect ai bucket esistenti.
secret-namespace- Per impostazione predefinita, il plugin COS ricerca il tuo segreto nello stesso spazio dei nomi in cui crei la PVC. Se hai creato il tuo segreto in uno spazio dei nomi diverso da quello in cui vuoi creare la tua PVC, immetti lo spazio dei nomi in cui hai creato il tuo segreto.
ibm.io/bucket-versioning- Per impostazione predefinita, il controllo delle versioni dei bucket è impostato su "
false". Impostare sutrueper abilitare il versioning dei bucket. Impostare sufalseper disabilitare il versioning per un bucket in cui il versioning è abilitato. Si noti che le credenziali del servizio devono avere i permessi di Manager o Writer per abilitare o disabilitare il versioning del bucket. Per ulteriori informazioni, consultare il sito Introduzione alla gestione delle versioni.
-
Crea la PVC nel tuo cluster.
oc apply -f filepath/pvc.yaml -
Verifica che la tua PVC sia stata creata e associata al PV.
oc get pvcOutput di esempio
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE s3fs-test-pvc Bound pvc-b38b30f9-1234-11e8-ad2b-t910456jbe12 8Gi RWO ibmc-s3fs-standard-cross-region 1h -
Facoltativo: se intendi accedere ai tuoi dati con un utente non root o se hai aggiunto dei file a un bucket IBM Cloud Object Storage esistente utilizzando direttamente la console o l'API, assicurati che ai file sia assegnata l'autorizzazione corretta in modo che la tua applicazione possa leggere e aggiornare correttamente i file secondo necessità.
-
Per associare il PV alla propria distribuzione, creare un file di configurazione
.yamle specificare il PVC a cui è associato il PV.apiVersion: apps/v1 kind: Deployment metadata: name: <deployment_name> labels: app: <deployment_label> spec: selector: matchLabels: app: <app_name> template: metadata: labels: app: <app_name> spec: containers: - image: <image_name> name: <container_name> securityContext: runAsUser: <non_root_user> volumeMounts: - name: <volume_name> mountPath: /<file_path> volumes: - name: <volume_name> persistentVolumeClaim: claimName: <pvc_name>app- Nella sezione metadata, immetti l'etichetta per la distribuzione.
matchLabels.appelabels.app- Nelle sezioni spec selector e spec template metadata, immetti un'etichetta per la tua applicazione.
image- Il nome dell'immagine del contenitore che vuoi utilizzare. Per elencare le immagini disponibili nel tuo account IBM Cloud Container Registry, esegui
ibmcloud cr image-list. name- Il nome del contenitore che vuoi distribuire al tuo cluster.
runAsUser- Nella sezione spec containers security context, puoi facoltativamente impostare il valore per l'esecuzione come utente (run as user).
mountPath- Nella sezione spec containers volume mounts, immetti il percorso assoluto della directory in cui viene montato il volume all'interno del contenitore. Se desideri condividere un volume tra diverse app, puoi specificare dei percorsi secondari all'interno del volume per ciascuna delle tue app.
volumeMounts.name- Nella sezione spec containers volume mounts, immetti il nome del volume per montare il tuo pod.
volumes.name- Nella sezione volumes, immetti il nome del volume da montare sul tuo pod. In genere questo nome corrisponde a
volumeMounts/name. claimName- Nella sezione volumes persistent volume claim, immetti il nome della PVC che esegue il bind del PV che vuoi utilizzare.
Creazione di una distribuzione
Dopo aver creato i file di configurazione della distribuzione e della PVC, crea la distribuzione nel tuo cluster.
-
Crea la distribuzione.
oc apply -f <local_yaml_path> -
Verifica che il PV venga montato correttamente.
oc describe deployment <deployment_name>Il punto di montaggio è nel campo Montaggi volume e il volume nel campo Volumi.
Volume Mounts: /var/run/secrets/kubernetes.io/serviceaccount from default-token-tqp61 (ro) /volumemount from myvol (rw) ... Volumes: myvol: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: mypvc ReadOnly: false -
Verifica di poter scrivere i dati nella tua istanza del servizio IBM Cloud Object Storage accedendo al pod dell'app e scrivendo i dati. Accedi al pod che monta il tuo PV.
oc exec <pod_name> -it bash -
Vai al tuo percorso di montaggio del volume che hai definito nella distribuzione della tua applicazione.
-
Crea un file di testo.
echo "This is a test" > test.txt -
Dalla console di IBM Cloud, accedi alla tua istanza del servizio IBM Cloud Object Storage.
-
Dal menu, seleziona Bucket.
-
Apri il tuo bucket e verifica che puoi vedere il
test.txtche hai creato.
Utilizzo dell'archiviazione oggetti in una serie con stato
Se hai un'applicazione con stato, come ad esempio un database, puoi creare delle serie con stato che utilizzano IBM Cloud Object Storage per memorizzare i dati della tua applicazione. In alternativa, puoi utilizzare un DBaaS (database-as-a-service) IBM Cloud, come IBM Cloudant, e memorizzare i tuoi dati sul cloud.
Prima di iniziare, segui i passaggi preliminari indicati all'inizio di questa sezione.
Per distribuire una serie con stato che utilizza l'archiviazione oggetti:
-
Crea un file di configurazione per la tua serie con stato e il servizio che utilizzi per esporre la serie con stato. I seguenti esempi mostrano come distribuire NGINX come una serie con stato con tre repliche, ciascuna delle quali con un bucket separato o condividendo lo stesso bucket.
Esempio di creazione di uno “stateful set” con tre repliche, ciascuna delle quali utilizza un bucket separato.
apiVersion: v1 kind: Service metadata: name: nginx-v01 namespace: default labels: app: nginx-v01 # must match spec.template.metadata.labels and spec.selector.matchLabels in stateful set YAML spec: ports: - port: 80 name: web clusterIP: None selector: app: nginx-v01 # must match spec.template.metadata.labels and spec.selector.matchLabels in stateful set YAML --- apiVersion: apps/v1 kind: StatefulSet metadata: name: web-v01 namespace: default spec: selector: matchLabels: app: nginx-v01 # must match spec.template.metadata.labels in stateful set YAML and metadata.labels in service YAML serviceName: "nginx-v01" replicas: 3 template: metadata: labels: app: nginx-v01 # must match spec.selector.matchLabels in stateful set YAML and metadata.labels in service YAML spec: terminationGracePeriodSeconds: 10 containers: - name: nginx image: registry.k8s.io/nginx-slim:0.8 ports: - containerPort: 80 name: web volumeMounts: - name: mypvc mountPath: /usr/share/nginx/html volumeClaimTemplates: - metadata: name: mypvc annotations: ibm.io/auto-create-bucket: "true" ibm.io/auto-delete-bucket: "true" ibm.io/bucket: "" ibm.io/secret-name: mysecret volume.beta.kubernetes.io/storage-class: ibmc-s3fs-standard-perf-cross-region volume.beta.kubernetes.io/storage-provisioner: ibm.io/ibmc-s3fs spec: accessModes: [ "ReadWriteOnce" ] storageClassName: "ibmc-s3fs-standard-perf-cross-region" resources: requests: storage: 1GiEsempio di creazione di uno “stateful set” con tre repliche che condividono lo stesso bucket
mybucket.apiVersion: v1 kind: Service metadata: name: nginx-v01 namespace: default labels: app: nginx-v01 # must match spec.template.metadata.labels and spec.selector.matchLabels in stateful set YAML spec: ports: - port: 80 name: web clusterIP: None selector: app: nginx-v01 # must match spec.template.metadata.labels and spec.selector.matchLabels in stateful set YAML --- apiVersion: apps/v1 kind: StatefulSet metadata: name: web-v01 namespace: default spec: selector: matchLabels: app: nginx-v01 # must match spec.template.metadata.labels in stateful set YAML and metadata.labels in service YAML serviceName: "nginx-v01" replicas: 3 template: metadata: labels: app: nginx-v01 # must match spec.selector.matchLabels in stateful set YAML and metadata.labels in service YAML spec: terminationGracePeriodSeconds: 10 containers: - name: nginx image: registry.k8s.io/nginx-slim:0.8 ports: - containerPort: 80 name: web volumeMounts: - name: mypvc mountPath: /usr/share/nginx/html volumeClaimTemplates: - metadata: name: mypvc annotations: ibm.io/auto-create-bucket: "false" ibm.io/auto-delete-bucket: "false" ibm.io/bucket: mybucket ibm.io/secret-name: mysecret volume.beta.kubernetes.io/storage-class: ibmc-s3fs-standard-perf-cross-region volume.beta.kubernetes.io/storage-provisioner: ibm.io/ibmc-s3fs spec: accessModes: [ "ReadOnlyMany" ] storageClassName: "ibmc-s3fs-standard-perf-cross-region" resources: requests: storage: 1Gi
name-
Immetti un nome per la tua serie con stato. Il nome che inserisci viene utilizzato per creare il nome del tuo PVC nel formato:
<volume_name>-< statefulset_name>-<replica_number>. serviceName-
Immetti il nome del servizio che vuoi utilizzare per esporre la tua serie con stato.
replicas-
Immetti il numero di repliche per la tua serie con stato.
matchLabels-
Nella sezione spec selector match labels, immetti tutte le etichette (label) che vuoi includere nella tua serie con stato e nella tua PVC. Le etichette incluse nell'
volumeClaimTemplatese dello stateful set non vengono riconosciute da Kubernetes. È invece necessario definire queste etichette nelle sezioni “spec.selector.matchLabels” e “spec.template.metadata.labels” del file YAML dello stateful set. Per assicurarti che tutte le repliche del tuo “stateful set” siano incluse nel bilanciamento del carico del tuo servizio, includi la stessa etichetta che hai utilizzato nella sezione “spec.selector” del file YAML del tuo servizio. labels-
Nella sezione "Etichette dei metadati delle specifiche", inserisci le stesse etichette che hai aggiunto alla sezione "
spec.selector.matchLabels" del file YAML del tuo stateful set. terminationGracePeriodSeconds-
Inserisci il numero di secondi da concedere all'
kubelete per terminare in modo sicuro il pod che esegue la replica del tuo StatefulSet. Per ulteriori informazioni, vedi Elimina pod. VolumeClaimTemplates.name-
Nella sezione spec volume claim templates metadata, immetti un nome per il tuo volume. Utilizza lo stesso nome che hai definito nella sezione "
spec.containers.volumeMount.name". Il nome che inserisci qui viene utilizzato per creare il nome del tuo PVC nel formato:<volume_name>-<statefulset_name>-<replica_number>. ibm.io/auto-create-bucket-
Nella sezione spec volume claim templates metadata, imposta un'annotazione per configurare la modalità di creazione dei bucket. Scegli tra le seguenti opzioni:
- vero: Scegliere questa opzione per creare automaticamente un bucket per ogni replica dello stateful set. Nota che le credenziali del servizio devono avere le autorizzazioni di Scrittore per creare automaticamente il bucket.
- false: Scegliere questa opzione se si desidera condividere un bucket esistente tra le repliche dello stateful set. Assicurati di specificare il nome del bucket nella sezione “
spec.volumeClaimTemplates.metadata.annotions.ibm.io/bucket” del file YAML dello stateful set.
ibm.io/auto-delete-bucket-
Nella sezione spec volume claim templates metadata, imposta un'annotazione per configurare la modalità di eliminazione dei bucket. Scegli tra le seguenti opzioni:
- vero: i dati, il bucket e il PV vengono rimossi automaticamente quando si elimina il PVC. La tua istanza del servizio IBM Cloud Object Storage rimane e non viene eliminata. Se si sceglie di impostare questa opzione su
"true", è necessario configurare
ibm.io/auto-create-bucket: trueeibm.io/bucket: ""in modo che il proprio bucket venga creato automaticamente con un nome nel formatotmp-s3fs-xxxx. - false: Quando si elimina il PVC, il PV viene eliminato automaticamente, ma i dati e il bucket presenti nell'istanza del servizio IBM Cloud Object Storage rimangono. Per accedere ai tuoi dati, devi creare un nuovo PVC con il nome del tuo bucket esistente.
- vero: i dati, il bucket e il PV vengono rimossi automaticamente quando si elimina il PVC. La tua istanza del servizio IBM Cloud Object Storage rimane e non viene eliminata. Se si sceglie di impostare questa opzione su
"true", è necessario configurare
ibm.io/bucket-
Nella sezione spec volume claim templates metadata, imposta un'annotazione per i dettagli del bucket. Scegli tra le seguenti opzioni:
- Se l'opzione "
ibm.io/auto-create-bucket" è impostata su "true ": inserisci il nome del bucket che desideri creare in IBM Cloud Object Storage. Se, inoltre, l'opzione "ibm.io/auto-delete-bucket" è impostata su "true", è necessario lasciare questo campo vuoto affinché al proprio bucket venga assegnato automaticamente un nome nel formato "tmp-s3fs-xxxx". Il nome deve essere univoco in IBM Cloud Object Storage. - Se l'opzione "
ibm.io/auto-create-bucket" è impostata su "false ": inserire il nome del bucket esistente a cui si desidera accedere nel cluster.
- Se l'opzione "
ibm.io/secret-name-
Nella sezione spec volume claim templates metadata annotations, immetti il nome del segreto che contiene le credenziali IBM Cloud Object Storage che hai creato in precedenza. Se aggiungi le tue credenzialiIBM Cloud Object Storage alle classi di archiviazione predefinite, non devi elencare il segreto nella PVC.
kubernetes.io/storage-class-
Nella sezione spec volume claim templates metadata annotations, immetti la classe di archiviazione che vuoi utilizzare. Scegli tra le seguenti opzioni:
- Se
ibm.io/auto-create-bucket: "true": inserisci la classe di archiviazione che desideri utilizzare per il tuo nuovo bucket. - Se
ibm.io/auto-create-bucket: "false": inserisci la classe di archiviazione utilizzata per creare il bucket esistente.
- Se
-
Per visualizzare l'elenco delle classi di archiviazione esistenti, eseguire il comando
oc get sc | grep s3. Se non si specifica una classe di archiviazione, il PVC viene creato con la classe di archiviazione predefinita impostata nel cluster. Assicurati che la classe di archiviazione predefinita utilizzi il provisioner “ibm.io/ibmc-s3fs”, in modo che il tuo Stateful Set venga configurato con l’archiviazione a oggetti. storageClassName-
Nella sezione "Spec" dei modelli di richiesta di volume, inserisci la stessa classe di archiviazione che hai specificato nella sezione "
spec.volumeClaimTemplates.metadata.annotations.volume.beta.kubernetes.io/storage-class" del file YAML del tuo Stateful Set. storage-
Nella sezione spec volume claim templates spec resource requests, immetti una dimensione fittizia per il tuo bucket IBM Cloud Object Storage in gigabyte. La dimensione è richiesta da Kubernetes, ma non è rispettata in IBM Cloud Object Storage. Puoi immettere qualsiasi dimensione vuoi. Lo spazio effettivo che utilizzi su IBM Cloud Object Storage potrebbe variare e viene addebitato in base al listino prezzi.