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:

Per aggiungere IBM Cloud Object Storage al tuo cluster:

  1. 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 in ibm.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 in ibm.io/bucket``.
    ibm.io/quota-limit
    Per utilizzare questa annotazione, è necessario specificare l'opzione --set quotaLimit=true durante l'installazione. Se vuoi utilizzare questa annotazione, ma non hai specificato --set quotaLimit=true durante l'installazione, reinstalla il grafico Helm.
    Se l'opzione ibm.io/quota-limit è impostata su true``, il PVC imposta una quantità massima di spazio di archiviazione (in byte) disponibile per il bucket in base alla dimensione storage: specificata.
    Se ibm.io/quota-limit è impostato su false, la quota non viene applicata alla tua PVC, il che significa che la quantità effettiva di memoria in byte potrebbe superare il storage: <size> che hai specificato a seconda della tua applicazione.
    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 ibmc Helm 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 esempio dal10, 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 comando oc describe storageclass <storageclassname>. Assicurati di inserire l'endpoint del servizio nel formato https://<s3fs_private_service_endpoint> per gli endpoint dei servizi cloud privati, oppure http://<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'opzione ibm.io/endpoint nel 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 su true per abilitare il versioning dei bucket. Impostare su false per 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.
  2. Crea la PVC nel tuo cluster.

    oc apply -f filepath/pvc.yaml
    
  3. Verifica che la tua PVC sia stata creata e associata al PV.

    oc get pvc
    

    Output 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
    
  4. 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à.

  5. Per associare il PV alla propria distribuzione, creare un file di configurazione .yaml e 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.app e labels.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.

  1. Crea la distribuzione.

    oc apply -f <local_yaml_path>
    
  2. 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
    
  3. 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
    
  4. Vai al tuo percorso di montaggio del volume che hai definito nella distribuzione della tua applicazione.

  5. Crea un file di testo.

    echo "This is a test" > test.txt
    
  6. Dalla console di IBM Cloud, accedi alla tua istanza del servizio IBM Cloud Object Storage.

  7. Dal menu, seleziona Bucket.

  8. Apri il tuo bucket e verifica che puoi vedere il test.txt che 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:

  1. 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: 1Gi
    

    Esempio 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' volumeClaimTemplates e 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' kubelet e 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: 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

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.
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.

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.