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 :
- Créez et préparez votre instance de service IBM Cloud Object Storage.
- Créez un secret pour stocker vos données d'identification pour le service IBM Cloud Object Storage.
- Déterminez la configuration à adopter pour IBM Cloud Object Storage.
Pour ajouter IBM Cloud Object Storage dans votre cluster :
-
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 dansibm.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 valeurtrue
, vous devez définiribm.io/auto-create-bucket: true
etibm.io/bucket: ""
pour que votre compartiment soit automatiquement créé avec un nom au formattmp-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 surtrue
: entrez le nom du compartiment que vous souhaitez créer dans IBM Cloud Object Storage. De plus, siibm.io/auto-delete-bucket
a la valeurtrue
, vous devez laisser cette zone vide pour affecter automatiquement un nom à votre compartiment au formattmp-s3fs-xxxx
. Ce nom doit être unique dans IBM Cloud Object Storage. - Si
ibm.io/auto-create-bucket
est défini surfalse
: 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 dansibm.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 surtrue
, votre PVC définit une quantité maximale de stockage (en octets) disponible pour le compartiment en fonction de la taillestorage: <size>
que vous spécifiez. - Si
ibm.io/quota-limit
est défini surfalse
, 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 lestorage: <size>
que vous avez spécifié en fonction de votre application.
- Pour utiliser cette annotation, vous devez spécifier l'option
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 quedal10
, 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écutezkubectl describe storageclass < storageclassname>
. Vérifiez que vous entrez votre nœud final de service au formathttps://< s3fs_private_service_endpoint>
pour les nœuds finaux de service de cloud privé ouhttp://< 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'optionibm.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 valeurtrue
permet d'activer le versionnage des seaux. La valeurfalse
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.
-
Créez la PVC dans votre cluster.
kubectl apply -f filepath/pvc.yaml
-
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
-
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.
-
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
etlabels.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.
-
Créez le déploiement.
kubectl apply -f <local_yaml_path>
-
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
-
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
-
Accédez au chemin de montage du volume que vous avez défini dans le déploiement de votre application.
-
Créez un fichier texte.
echo "This is a test" > test.txt
-
Dans le tableau de bord IBM Cloud®, accédez à votre instance de service IBM Cloud Object Storage.
-
Dans le menu, sélectionnez Compartiments.
-
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 :
- Créez et préparez votre instance de service IBM Cloud Object Storage.
- Créez un secret pour stocker vos données d'identification pour le service IBM Cloud Object Storage.
- Déterminez la configuration à adopter pour IBM Cloud Object Storage.
Pour déployer un ensemble avec état utilisant du stockage d'objets :
-
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 sectionsspec.selector.matchLabels
etspec.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 sectionspec.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
etibm.io/bucket: ""
pour que votre compartiment soit automatiquement créé avec un nom au formattmp-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.
- 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/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, siibm.io/auto-delete-bucket
a la valeurtrue
, vous devez laisser cette zone vide pour affecter automatiquement un nom à votre compartiment au formattmp-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.
- Si
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.
- Si
-
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 comporteibm.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.