IBM Cloud Docs
Déployer une application qui utilise COS

Déployer une application qui utilise COS

Créez une réservation de volume persistant (PVC) pour mettre à disposition IBM Cloud Object Storage pour votre cluster.

En fonction des paramètres que vous choisissez dans votre PVC, vous pouvez mettre à disposition IBM Cloud Object Storage ainsi :

  • Provisionnement dynamique: Lorsque vous créez le PVC, le volume persistant (PV) correspondant et le godet de votre instance de service IBM Cloud Object Storage sont automatiquement créés.
  • Provisionnement statique: Vous pouvez faire référence à un godet existant dans votre instance de service IBM Cloud Object Storage dans votre PVC. Lorsque vous créez la PVC, le volume persistant correspondant est automatiquement créé et lié à votre compartiment existant dans IBM Cloud Object Storage.

Avant de commencer :

Pour ajouter IBM Cloud Object Storage dans votre cluster :

  1. Créez un fichier de configuration pour définir votre PVC. Si vous ajoutez vos informations d'identification IBM Cloud Object Storage aux classes de stockage par défaut, ne mentionnez pas votre secret dans le 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
    Sélectionnez l'une des options suivantes.
    true: Lorsque vous créez le PVC, le PV et le compartiment de votre instance de service IBM Cloud Object Storage sont automatiquement créés. Choisissez cette option pour créer un nouveau compartiment dans votre instance de service IBM Cloud Object Storage. Notez que les données d'identification du service doivent disposer des droits Éditeur pour créer automatiquement le compartiment.
    false: Choisissez cette option si vous souhaitez accéder aux données d'un compartiment existant. Lorsque vous créez la PVC, le volume persistant est automatiquement créé et lié au compartiment que vous spécifiez dans ibm.io/bucket.
    ibm.io/auto-delete-bucket
    Sélectionnez l'une des options suivantes.
    true: Vos données, le compartiment et le PV sont automatiquement supprimés lorsque vous supprimez le PVC. Il reste votre instance de service IBM Cloud Object Storage qui n'est pas supprimée. Si vous choisissez de définir cette option avec la valeur true, vous devez définir ibm.io/auto-create-bucket: true et ibm.io/bucket: "" pour que votre compartiment soit automatiquement créé avec un nom au format tmp-s3fs-xxxx.
    false: Lorsque vous supprimez le PVC, le PV est supprimé automatiquement, mais vos données et le compartiment de votre instance de service IBM Cloud Object Storage restent. Pour accéder à vos données, vous devez créer une nouvelle PVC avec le nom de votre compartiment existant.
    ibm.io/bucket
    Sélectionnez l'une des options suivantes.
    Si ibm.io/auto-create-bucket est défini sur true : entrez le nom du compartiment que vous souhaitez créer dans IBM Cloud Object Storage. De plus, si ibm.io/auto-delete-bucket a la valeur true, vous devez laisser cette zone vide pour affecter automatiquement un nom à votre compartiment au format tmp-s3fs-xxxx. Ce nom doit être unique dans IBM Cloud Object Storage.
    Si ibm.io/auto-create-bucket est défini sur false: entrez le nom du compartiment existant auquel vous souhaitez accéder dans le cluster.
    ibm.io/object-path
    Facultatif : entrez le nom du sous-répertoire présent dans votre compartiment que vous voulez monter. Utilisez cette option pour monter uniquement un sous-répertoire et non le compartiment dans son ensemble. Pour monter un sous-répertoire, vous devez définir ibm.io/auto-create-bucket: "false" et fournir le nom du compartiment dans ibm.io/bucket.
    ibm.io/quota-limit
    Pour utiliser cette annotation, vous devez spécifier l'option --set quotaLimit=true lors de l'installation. Si vous souhaitez utiliser cette annotation, mais que vous n'avez pas spécifié --set quotaLimit=true lors de l'installation, réinstallez la charte Helm.
    Si ibm.io/quota-limit est défini sur true, votre PVC définit une quantité maximale de stockage (en octets) disponible pour le compartiment en fonction de la taille storage: <size> que vous spécifiez.
    Si ibm.io/quota-limit est défini sur false, le quota n'est pas appliqué à votre réservation de volume persistant, ce qui signifie que la quantité réelle de stockage en octets peut dépasser le storage: <size> que vous avez spécifié en fonction de votre application.
    ibm.io/endpoint
    Si vous avez créé votre instance de service IBM Cloud Object Storage dans un autre emplacement que votre cluster, entrez le noeud final de service cloud privé ou public de votre instance de service IBM Cloud Object Storage que vous souhaitez utiliser. Pour plus d'informations et une présentation des nœuds finaux de service disponibles, voir Informations de nœud final supplémentaires. Par défaut, le plug-in Helm ibmc extrait automatiquement l'emplacement de votre cluster et crée les classes de stockage à l'aide du noeud final de service cloud privé IBM Cloud Object Storage correspondant à l'emplacement de votre cluster. Si votre cluster classique se trouve dans un métro à zones multiples, tel que dal10, le nœud final de service de cloud privé IBM Cloud Object Storage pour le métro à zones multiples, par exemple Dallas. Pour vérifier que le nœud final de service de vos classes de stockage correspond au nœud final de service de votre instance de service, exécutez kubectl describe storageclass < storageclassname>. Vérifiez que vous entrez votre nœud final de service au format https://< s3fs_private_service_endpoint> pour les nœuds finaux de service de cloud privé ou http://< s3fs_public_service_endpoint> pour les nœuds finaux de service de cloud public. Si le nœud final de service de votre classe de stockage correspond au nœud final de service de votre instance de service IBM Cloud Object Storage, n'incluez pas l'option ibm.io/endpoint dans votre fichier YAML PVC.
    ibm.io/add-mount-param
    Entrez les options de montage pour vos volumes fusionnés s3fs. Par exemple,ibm.io/add-mount-param: "del_cache,retries=6". Pour obtenir une liste d'options, voir les pages d'aides3fs
    ibm.io/access-policy-allowed-ips
    Entrez une liste d'adresses IP séparées par des virgules qui peuvent accéder à vos volumes. Par exemple, ibm.io/access-policy-allowed-ips: "XX.XXX.XX.XXX, XX.XX.XX.XXX, XX.XX.XX.XX.
    storage
    Dans la section spec resources requests, entrez une taille en gigaoctets pour votre panier IBM Cloud Object Storage. L'espace réel que vous utilisez sur IBM Cloud Object Storage peut être différent et est facturé sur la base du tableau des prix. Si vous avez activé des quotas lors de l'installation du plug-in, le quota de votre compartiment est égal à cette taille.
    storageClassName
    Sélectionnez l'une des options suivantes.
    Si ibm.io/auto-create-bucket: "true": entrez la classe de stockage que vous souhaitez utiliser pour votre nouveau compartiment.
    Si ibm.io/auto-create-bucket: "false": entrez la classe de stockage que vous avez utilisée pour créer votre compartiment existant.
    Si vous avez créé manuellement le compartiment dans votre instance de service IBM Cloud Object Storage ou que vous ne vous souvenez pas de la classe de stockage que vous avez utilisée, recherchez votre instance de service dans le tableau de bord IBM Cloud et examinez les Classe et Emplacement de votre compartiment existant. Ensuite, utilisez la classe de stockage appropriée. Le noeud final d'API IBM Cloud Object Storage défini dans votre classe de stockage est basé sur la région dans laquelle se trouve votre cluster. Si vous souhaitez accéder à un seau situé dans une région différente de celle où se trouve votre cluster, vous devez créer votre propre classe de stockage et utiliser le point de terminaison API approprié pour votre seau.
    ibm.io/secret-name
    Entrez le nom du secret qui contient les données d'identification IBM Cloud Object Storage que vous avez créées précédemment. Si vous ajoutez vos données d'identificationIBM Cloud Object Storage aux classes de stockage par défaut, vous ne devez pas répertorier les secrets dans la PVC. Si vous souhaitez intégrer le chiffrement Key Protect lors de la création de nouveaux compartiments à partir de PVC dans votre cluster, vous devez inclure le CRN de clé racine lors de la création de votre secretIBM Cloud Object Storage. Notez que vous ne pouvez pas ajouter le chiffrement Key Protect à des compartiments existants.
    secret-namespace
    Par défaut, le plug-in COS recherche votre secret dans le même espace de noms que celui où vous créez le PVC. Si vous avez créé votre secret dans un espace de nom autre que l'espace de nom où vous voulez créer votre PVC, entrez l'espace de nom où vous avez créé votre secret.
    ibm.io/bucket-versioning
    Par défaut, le versionnage de la base de données est défini sur false. La valeur true permet d'activer le versionnage des seaux. La valeur false permet de désactiver le versionnage d'un godet pour lequel le versionnage est activé. Notez que les informations d'identification du service doivent avoir les permissions Manager ou Writer pour activer ou désactiver le versionnement du seau sur le seau. Pour plus d'informations, voir Démarrer avec la gestion des versions.
  2. Créez la PVC dans votre cluster.

    kubectl apply -f filepath/pvc.yaml
    
  3. Vérifiez que votre PVC est créée et liée au volume persistant (PV).

    kubectl get pvc
    

    Exemple de sortie

    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. Facultatif : si vous envisagez d'accéder à vos données avec un utilisateur non root, ou d'ajouter des fichiers à un compartiment IBM Cloud Object Storage existant en utilisant directement la console ou l'API, vérifiez que les droits appropriés sont affectés aux fichiers pour que votre application puisse lire et mettre à jour les fichiers comme il convient.

  5. Pour monter le volume persistant (PV) sur votre déploiement, créez un fichier de configuration .yaml et spécifiez la réservation de volume persistant (PVC) associée au 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
Dans la section metadata, entrez un libellé pour le déploiement.
matchLabels.app et labels.app
Dans les sections spec.selector et spec.template.metadata, entrez un libellé pour votre application.
image
Nom de l'image de conteneur que vous souhaitez utiliser. Pour répertorier les images disponibles dans votre compte IBM Cloud Container Registry, exécutez la commande ibmcloud cr image-list.
name
Nom du conteneur que vous désirez déployer dans votre cluster.
runAsUser
Dans la section spec.containers.security.context, vous pouvez éventuellement définir l'exécution comme valeur utilisateur.
mountPath
Dans la section spec.containers.volume.mounts, entrez le chemin d'accès absolu du répertoire où est monté le volume dans le conteneur. Si vous souhaitez partager un volume entre différentes applications, vous pouvez spécifier des sous-chemins de volume pour chacune de vos applications.
volumeMounts.name
Dans la section spec.containers.volume.mounts, entrez le nom du volume à monter sur votre pod.
volumes.name
Dans la section volumes, entrez le nom du volume à monter sur votre pod. Généralement, ce nom est identique à volumeMounts/name.
claimName
Dans la section volumes.persistent.volume.claim, entrez le nom de la PVC qui lie le volume persistant que vous souhaitez utiliser.

Création d'un déploiement

Après avoir créé les fichiers de configuration de PVC et de déploiement, créez le déploiement dans votre cluster.

  1. Créez le déploiement.

    kubectl apply -f <local_yaml_path>
    
  2. Vérifiez que le montage du volume persistant (PV) a abouti.

    kubectl describe deployment <deployment_name>
    

    Le point de montage est indiqué dans la zone Volume Mounts et le volume est indiqué dans la zone Volumes.

    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. Vérifiez que vous pouvez écrire des données dans votre instance de service IBM Cloud Object Storage en vous connectant au pod d'application et en écrivant des données. Connectez-vous au pod qui monte votre volume persistant.

    kubectl exec <pod_name> -it bash
    
  4. Accédez au chemin de montage du volume que vous avez défini dans le déploiement de votre application.

  5. Créez un fichier texte.

    echo "This is a test" > test.txt
    
  6. Dans le tableau de bord IBM Cloud®, accédez à votre instance de service IBM Cloud Object Storage.

  7. Dans le menu, sélectionnez Compartiments.

  8. Ouvrez votre compartiment et vérifiez que le fichier test.txt que vous avez créé est visible.

Utilisation de stockage d'objets dans un ensemble avec état (StatefulSet)

Si vous disposez d'une application avec état, telle qu'une base de données, vous pouvez créer des ensembles avec état utilisant IBM Cloud Object Storage pour stocker les données de votre application. Sinon, vous pouvez utiliser une base de données IBM Cloud DaaS (Database-as-a-Service), telle que IBM Cloudant, et stocker vos données dans le cloud.

Avant de commencer :

Pour déployer un ensemble avec état utilisant du stockage d'objets :

  1. Créez un fichier de configuration pour votre ensemble avec état et le service que vous utilisez pour exposer cet ensemble. Les exemples suivants montrent comment déployer NGINX comme un ensemble avec état avec trois répliques, chaque réplique ayant un compartiment distinct ou partageant le même compartiment.

    Exemple de création d'un ensemble avec état avec trois répliques, chaque réplique utilisant un compartiment distinct.

    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: k8s.gcr.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
    

    Exemple de création d'un ensemble avec état avec trois répliques partageant le même compartiment nommé 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: k8s.gcr.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

Entrez un nom pour votre ensemble avec état. Le nom entré est utilisé pour créer le nom de votre PVC au format : <volume_name>-< statefulset_name>-<replica_number>.

serviceName

Entrez le nom du service que vous souhaitez utiliser pour exposer votre ensemble avec état.

replicas

Entrez le nombre de répliques de votre ensemble avec état.

matchLabels

Dans la section spec.selector.match.labels, entrez tous les libellés que vous souhaitez inclure dans votre ensemble avec état et votre PVC. Les libellés que vous indiquez dans la section volumeClaimTemplates de votre ensemble avec état ne sont pas reconnus par Kubernetes. A la place, vous devez définir ces libellés dans les sections spec.selector.matchLabels et spec.template.metadata.labels du fichier YAML de votre ensemble avec état. Pour vous assurer que toutes vos répliques d'ensemble avec état sont dans l'équilibrage de charge de votre service, incluez le même libellé que celui utilisé dans la section spec.selector de votre service YAML.

labels

Dans la section spec.template.labels, entrez les mêmes libellés que ceux que vous avez ajoutés à la section spec.selector.matchLabels du fichier YAML de votre ensemble avec état.

terminationGracePeriodSeconds

Entrez le nombre de secondes à donner à kubelet pour terminer en toute sécurité le pod qui exécute votre stateful set replica. Pour plus d'informations, voir Suppression de pods.

VolumeClaimTemplates.name

Dans la section spec.volume.claim.templates.metadata, entrez un nom pour votre volume. Utilisez le même nom que vous avez défini dans la section spec.containers.volumeMount.name. Le nom que vous entrez ici est utilisé pour créer le nom de votre PVC au format : <volume_name>-<statefulset_name>-<replica_number>.

ibm.io/auto-create-bucket

Dans la section spec.volume.claim.templates.metadata, définissez une annotation pour configurer le mode de création des compartiments. Sélectionnez l'une des options suivantes :

  • true : sélectionnez cette option afin de créer automatiquement un compartiment pour chaque réplique de l'ensemble avec état. Notez que les données d'identification du service doivent disposer des droits Éditeur pour créer automatiquement le compartiment.
  • false : sélectionnez cette option si vous souhaitez que les répliques de votre ensemble avec état partagent un compartiment existant. Assurez-vous que le nom du compartiment est défini dans la section spec.volumeClaimTemplates.metadata.annotions.ibm.io/bucket du fichier YAML de votre ensemble avec état.
ibm.io/auto-delete-bucket

Dans la section spec.volume.claim.templates.metadata, définissez une annotation pour configurer le mode de suppression des compartiments. Sélectionnez l'une des options suivantes :

  • true : vos données, le compartiment et le volume persistant sont automatiquement supprimés en même temps que la PVC. Il reste votre instance de service IBM Cloud Object Storage qui n'est pas supprimée. Si vous choisissez d'attribuer la valeur true à cette option, vous devez définir ibm.io/auto-create-bucket: true et ibm.io/bucket: "" pour que votre compartiment soit automatiquement créé avec un nom au format tmp-s3fs-xxxx.
  • false : lorsque vous supprimez la PVC, le volume persistant est automatiquement supprimé, mais vos données et le compartiment figurant dans votre instance de service IBM Cloud Object Storage sont conservés. Pour accéder à vos données, vous devez créer une nouvelle PVC avec le nom de votre compartiment existant.
ibm.io/bucket

Dans la section spec.volume.claim.templates.metadata, définissez une annotation pour les détails de compartiment. Sélectionnez l'une des options suivantes :

  • Si ibm.io/auto-create-bucket a la valeur true : Entrez le nom du compartiment que vous voulez créer dans IBM Cloud Object Storage. De plus, si ibm.io/auto-delete-bucket a la valeur true, vous devez laisser cette zone vide pour affecter automatiquement un nom à votre compartiment au format tmp-s3fs-xxxx. Ce nom doit être unique dans IBM Cloud Object Storage.
  • Si ibm.io/auto-create-bucket a la valeur false : entrez le nom du compartiment existant auquel vous souhaitez accéder dans le cluster.
ibm.io/secret-name

Dans la section spec.volume.claim.templates.metadata.annotations, entrez le nom du secret qui contient les données d'identification IBM Cloud Object Storage que vous avez créées précédemment. Si vous ajoutez les données d'identification IBM Cloud Object Storage aux classes de stockage par défaut, vous ne devez pas répertorier le secret dans le PVC.

kubernetes.io/storage-class

Dans la section spec.volume.claim.templates.metadata.annotations, entrez la classe de stockage que vous souhaitez utiliser. Sélectionnez l'une des options suivantes :

  • Si ibm.io/auto-create-bucket: "true": entrez la classe de stockage que vous souhaitez utiliser pour votre nouveau compartiment.
  • Si ibm.io/auto-create-bucket: "false": entrez la classe de stockage que vous avez utilisée pour créer votre compartiment existant.

Pour dresser la liste des classes de stockage existantes, exécutez la commande kubectl get sc | grep s3. Si vous ne spécifiez pas de classe de stockage, le PVC est créé avec la classe de stockage par défaut définie dans votre cluster. Vérifiez que la classe de stockage par défaut comporte ibm.io/ibmc-s3fs dans la section 'provisioner' de sorte que votre ensemble avec état soit mis à disposition avec du stockage d'objets.

storageClassName

Dans la section spec.volume.claim.templates.spec, entrez la même classe de stockage que celle que vous avez entrée dans la section spec.volumeClaimTemplates.metadata.annotations.volume.beta.kubernetes.io/storage-class du fichier YAML de votre ensemble avec état.

storage

Dans la section spec.volume.claim.templates.spec.resource.requests, entrez une taille fictive pour votre compartiment IBM Cloud Object Storage en gigaoctets. La taille est requise par Kubernetes, mais n'est pas respectée dans IBM Cloud Object Storage. Vous pouvez entrer la taille de votre choix. L'espace réel que vous utilisez sur IBM Cloud Object Storage peut être différent et est facturé sur la base du tableau des prix.