Installation du plug-in « IBM Cloud Object Storage »

Cloud privé virtuel Infrastructure classique

Installez le plug-in IBM Cloud Object Storage pour configurer des classes de stockage prédéfinies pour IBM Cloud Object Storage. Vous pouvez utiliser ces classes de stockage pour créer une réservation de volume persistant afin de mettre à disposition IBM Cloud Object Storage pour vos applications.

Installation du plug-in via Helm

Prérequis
Le plug-in IBM Cloud Object Storage nécessite au moins 0,2 UC et 128 Mo de mémoire.

Avant de commencer : Connectez-vous à votre compte. Le cas échéant, ciblez le groupe de ressources approprié. Définissez le contexte de votre cluster.

Installez le plug-in « ibmc » ( Helm ) ainsi que le plug-in « ibm-object-storage-plugin » :

  1. Vérifiez que votre noeud worker applique le dernier correctif pour votre version secondaire afin d'exécuter votre noeud worker avec les paramètres de sécurité les plus récents. La version de correctif garantit également le renouvellement du mot de passe root sur le noeud worker.

    Si vous n'avez pas appliqué des mises à jour ni rechargé votre noeud worker au cours des 90 derniers jours, votre mot de passe root sur le noeud worker expire et l'installation du plug-in de stockage est susceptible d'échouer.

    1. Répertoriez la version de correctif en cours pour vos noeuds worker.
        ibmcloud ks worker ls --cluster CLUSTER_NAME_OR_ID
        ```
        Exemple de sortie
        ```sh {: screen}
        OK
        ID                                                  Public IP        Private IP     Machine Type           State    Status   Zone    Version
        kube-dal10-crb1a23b456789ac1b20b2nc1e12b345ab-w26   169.xx.xxx.xxx    10.xxx.xx.xxx   b3c.4x16.encrypted     normal   Ready    dal10   1.35_1523*
        ```
        Si votre noeud worker n'applique pas la dernière version de correctif, un astérisque (`*`) apparaît dans la colonne **Version** de votre sortie d'interface de ligne de commande.
    
    2. Passez en revue les [informations de version deKubernetes](/docs/containers?topic=containers-cs_versions) pour trouver les dernières modifications.
    
    3. Appliquez la dernière version de correctif en rechargeant votre noeud worker. Suivez les instructions fournies dans la [commande « ibmcloud ks worker reload](/docs/containers?topic=containers-kubernetes-service-cli#worker-reload-cli) » pour replanifier en toute sécurité les pods en cours d'exécution sur votre nœud de travail avant de recharger ce dernier. Notez que durant le rechargement, la machine de votre noeud worker est mise à jour avec l'image la plus récente et les données sont supprimées si elles ne sont pas [stockées hors du noeud worker](/docs/containers?topic=containers-storage-plan).
    
  2. Consultez le journal des modifications et vérifiez la prise en charge de votre architecture et version du cluster.

  3. Suivez les instructions pour installer le client Helm version 3 sur votre machine locale.

    Si vous avez activé VRF et des noeuds finaux de service dans votre compte IBM Cloud, vous pouvez utiliser le référentiel Helm d'IBM Cloud privé pour conserver votre trafic d'extraction d'image sur le réseau privé. Si vous ne pouvez pas activer VRF ou les nœuds finaux de service dans votre compte, utilisez le référentiel Helm public.

  4. Ajoutez le référentiel Helm IBM Cloud dans votre cluster :

    helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
    
  5. Mettez à jour les référentiel Helm pour extraire la version la plus récente de tous les graphiques Helm dans ce référentiel.

    helm repo update
    
  6. Si vous avez installé le plug-in IBM Cloud Object Storage Helm plus tôt, supprimez le plug-in ibmc.

    helm plugin uninstall ibmc
    
  7. Téléchargez les chartes Helm et décompressez-les dans votre répertoire de travail.

    helm fetch --untar ibm-helm/ibm-object-storage-plugin
    

    Si la sortie contient le message d'erreur Error: failed to untar: a file or directory with the name ibm-object-storage-plugin already exists, supprimez votre répertoire ibm-object-storage-plugin et réexécutez la commande helm fetch.

  8. Si vous installez le plug-in pour la première fois, installez le plug-in IBM Cloud Object Storage Helm ibmc. Le plug-in extrait automatiquement l'emplacement de votre cluster et vous permet de définir le noeud final de l'API pour vos segments IBM Cloud Object Storage dans vos classes de stockage. Si vous utilisez Windows comme système d'exploitation, sautez cette étape.

    Le plug-in ibmc n'est pas pris en charge sous Windows.

    1. Installez le plug-in Helm.
        helm plugin install ./ibm-object-storage-plugin/helm-ibmc
        ```
    2. Vérifiez que le plug-in `ibmc` est installé correctement.
    ```sh {: pre}
        helm ibmc --help
        ```
        Exemple de sortie
        ```sh {: screen}
        Helm version: v3.13.1+g3547a4b
        Install or upgrade Helm charts in IBM K8S Service(IKS)
        Usage:
        helm ibmc [command]
        Available Commands:
        install           Install a Helm chart
        upgrade           Upgrade the release to a new version of the Helm chart
        Available Flags:
        -h, --help        (Optional) This text.
        -u, --update      (Optional) Update this plugin to the latest version
        Example Usage:
            Install: helm ibmc install ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin
            Upgrade: helm ibmc upgrade [RELEASE] ibm-helm/ibm-object-storage-plugin
        Note:
            1. It is always recommended to install latest version of ibm-object-storage-plugin chart.
            2. It is always recommended to have 'kubectl' client up-to-date.
        ```
    3. **Facultatif**: si le résultat affiche l'erreur « `Error: fork/exec /home/iksadmin/.helm/plugins/helm-ibmc/ibmc.sh: permission denied` », exécutez la commande suivante.
    
    ```sh {: pre}
        chmod 755 /Users/<user_name>/Library/helm/plugins/helm-ibmc/ibmc.sh
        ```
        Relancez ensuite la commande `ibmc --help`.
    
        ```sh {: pre}
        helm ibmc --help
        ```
    
    
    
    
  9. Facultatif: limitez l'accès du plug-in « IBM Cloud Object Storage » aux secrets de « Kubernetes » qui contiennent vos identifiants de connexion au service « IBM Cloud Object Storage ». Par défaut, le plug-in peut accéder à tous les secrets de Kubernetes dans votre cluster.

    1. Créez votre instance de service IBM Cloud Object Storage.
    2. Stockez vos données d'identification de service IBM Cloud Object Storage dans un secret Kubernetes).
    3. Accédez au répertoire ibm-object-storage-plugin.
        cd ibm-object-storage-plugin
        ```
    3. Depuis `ibm-object-storage-plugin`, accédez au répertoire `templates` et répertoriez les fichiers disponibles.
            OS X et Linux
    
    ```sh {: pre}
        cd templates && ls
        ```
        Windows
    
        ```sh {: pre}
        chdir templates && dir
        ```
    4. Ouvrez le fichier `provisioner-sa.yaml` et recherchez la définition `ibmcloud-object-storage-secret-reader` `ClusterRole`.
    5. Ajoutez le nom du secret que vous avez créé auparavant dans la liste des secrets auxquels le plug-in est autorisé à accéder dans la section `resourceNames`.
    ```yaml {: codeblock}
        kind: ClusterRole
        apiVersion: rbac.authorization.k8s.io/v1beta1
        metadata:
         name: ibmcloud-object-storage-secret-reader
        rules:
        - apiGroups: [""]
          resources: ["secrets"]
          resourceNames: ["<secret_name1>","<secret_name2>"]
          verbs: ["get"]
        ```
    6. Sauvegardez vos modifications et accédez à votre répertoire de travail.
    
    
    
  10. Installez ibm-object-storage-plugin dans votre cluster. Lorsque vous installez le plug-in, des classes de stockage prédéfinies sont ajoutées dans votre cluster. Si vous avez effectué l'étape précédente pour limiter l'accès du plug-in IBM Cloud Object Storage uniquement aux secrets Kubernetes contenant vos données d'identification pour le service IBM Cloud Object Storage et que vous ciblez toujours le répertoire templates, remplacez les répertoires par votre répertoire de travail. Pour définir une limite de capacité de stockage disponible pour le compartiment, configurez l'option « --set quotaLimit=true » ( Uniquement pour les clusters VPC ): pour activer les adresses IP autorisées sur le VPC, activez l'option « --set bucketAccessPolicy=true » (Autoriser les adresses IP spécifiques).

Si vous ne définissez pas l'option --set quotaLimit=true lors de l'installation, vous ne pouvez pas définir de quotas pour vos PVC.

Exemple helm ibmc install commandes pour les systèmes d'exploitation non Windows.

helm ibmc install ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin --set license=true [--set quotaLimit=true/false] [--set bucketAccessPolicy=true/false] [--set allowCrossNsSecret=true/false]

Exemple de commande helm install pour Windows.

helm install ibm-object-storage-plugin ./ibm-object-storage-plugin --set dcname="${DC_NAME}" --set provider="${CLUSTER_PROVIDER}" --set workerOS="${WORKER_OS}" --set region="${REGION} --set platform="${PLATFORM}" --set license=true [--set bucketAccessPolicy=false]
quotaLimit
Une limite de quota définit la quantité maximale de stockage (en octets) disponible pour un compartiment. Si vous définissez cette option sur true, lorsque vous créez des réservations de volume persistant, le quota sur les compartiments créés par ces réservations de volume persistant est égal à la taille de la réservation de volume persistant. La valeur par défaut est true.
allowCrossNsSecret
Par défaut, le plug-in recherche le secret Kubernetes dans des espaces de nom autres que l'espace de nom PVC. Si vous définissez cette option sur false, le plug-in recherche le secret Kubernetes uniquement dans l'espace de nom PVC. La valeur par défaut est true.
kubeDriver
Définit sur /usr/libexec/kubernetes.
DC_NAME
Centre de données du cluster. Pour obtenir la valeur du centre de données, exécutez la commande kubectl get cm cluster-info -n kube-system -o jsonpath="{.data.cluster-config\.json}{'\n'}". Stockez la valeur du centre de données dans une variable d'environnement en exécutant SET DC_NAME=<datacenter>. Facultatif : définissez la variable d'environnement dans Windows PowerShell en exécutant $env:DC_NAME="<datacenter>".
CLUSTER_PROVIDER
Fournisseur d'infrastructure. Pour obtenir cette valeur, exécutez kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/iaas-provider}{'\n'}". Si la sortie de l'étape précédente contient softlayer, affectez au paramètre CLUSTER_PROVIDER la valeur "IBMC". Si la sortie contient gc, ng ou g2, définissez CLUSTER_PROVIDER sur "IBMC-VPC". Stockez la valeur du fournisseur d'infrastructure dans une variable d'environnement. Par exemple : SET CLUSTER_PROVIDER="IBMC-VPC".
WORKER_OS et PLATFORM
Système d'exploitation des noeuds worker. Pour obtenir ces valeurs, exécutez kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/os}{'\n'}". Stockez la valeur du système d'exploitation des noeuds worker (WORKER_OS) dans une variable d'environnement. Pour les clusters IBM Cloud Kubernetes Service, exécutez SET WORKER_OS="debian" et SET PLATFORM="k8s".
REGION
Région des noeuds worker. Pour obtenir cette valeur, exécutez kubectl get nodes -o yaml | grep 'ibm-cloud\.kubernetes\.io/region'. Stockez la région des nœuds worker dans une variable d'environnement en exécutant SET REGION="< region>".

Mise à jour du plug-in IBM Cloud Object Storage

Vous pouvez mettre à niveau le plug-in IBM Cloud Object Storage existant vers la version la plus récente.

  1. Obtenez le nom de l'édition Helm du plug-in IBM Cloud Object Storage et la version du plug-in dans votre cluster.

    helm ls -A | grep object
    

    Exemple de sortie

    NAME              NAMESPACE      REVISION    UPDATED                                   STATUS      CHART                                  APP VERSION               
    <release_name>  <namespace>     1           2020-02-13 16:05:58.599679 -0500 EST    deployed    ibm-object-storage-plugin-1.1.2        1.1.2
    
  2. Mettez à jour IBM Cloud Helm repo pour extraire la version la plus récente de tous les graphiques Helm dans ce référentiel.

    helm repo update
    
  3. Mettez à jour IBM Cloud Object Storage ibmc Helm plug-in à la version la plus récente.

    helm ibmc --update
    
  4. Installez la version la plus récente de ibm-object-storage-plugin pour votre système d'exploitation.

    Exemple helm ibmc upgrade commande pour les systèmes d'exploitation non Windows.

    helm ibmc upgrade ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin --set license=true [--set quotaLimit=true/false] [--set bucketAccessPolicy=true/false] [--set allowCrossNsSecret=true/false]
    

    Exemple de commande helm upgrade pour Windows.

    helm upgrade ibm-object-storage-plugin ./ibm-object-storage-plugin --set dcname="${DC_NAME}" --set provider="${CLUSTER_PROVIDER}" --set workerOS="${WORKER_OS}" --set region="${REGION} --set platform="${PLATFORM}" --set license=true [--set bucketAccessPolicy=false]
    
    DC_NAME
    Centre de données du cluster. Pour obtenir la valeur du centre de données, exécutez la commande kubectl get cm cluster-info -n kube-system -o jsonpath="{.data.cluster-config\.json}{'\n'}". Stockez la valeur du centre de données dans une variable d'environnement en exécutant SET DC_NAME=<datacenter>. Facultatif : définissez la variable d'environnement dans Windows PowerShell en exécutant $env:DC_NAME="<datacenter>".
    CLUSTER_PROVIDER
    Fournisseur d'infrastructure. Pour obtenir cette valeur, exécutez kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/iaas-provider}{'\n'}". Si la sortie de l'étape précédente contient softlayer, affectez au paramètre CLUSTER_PROVIDER la valeur "IBMC". Si la sortie contient gc, ng ou g2, définissez CLUSTER_PROVIDER sur "IBMC-VPC". Stockez la valeur du fournisseur d'infrastructure dans une variable d'environnement. Par exemple : SET CLUSTER_PROVIDER="IBMC-VPC".
    WORKER_OS et PLATFORM
    Système d'exploitation des noeuds worker. Pour obtenir ces valeurs, exécutez kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/os}{'\n'}". Stockez la valeur du système d'exploitation des noeuds worker (WORKER_OS) dans une variable d'environnement. Pour les clusters IBM Cloud Kubernetes Service, exécutez SET WORKER_OS="debian" et SET PLATFORM="k8s".
    REGION
    Région des noeuds worker. Pour obtenir cette valeur, exécutez kubectl get nodes -o yaml | grep 'ibm-cloud\.kubernetes\.io/region'. Stockez la région des nœuds worker dans une variable d'environnement en exécutant SET REGION="< region>". |
  5. Vérifiez que la mise à niveau du plug-in ibmcloud-object-storage-plugin a abouti. La mise à niveau du plug-in a abouti lorsque vous voyez le message deployment "ibmcloud-object-storage-plugin" successfully rolled out dans la sortie de l'interface de ligne de commande.

    kubectl rollout status deployment/ibmcloud-object-storage-plugin -n ibm-object-s3fs
    
  6. Vérifiez que la mise à niveau du plug-in ibmcloud-object-storage-driver a abouti. La mise à niveau a abouti lorsque vous voyez le message daemon set "ibmcloud-object-storage-driver" successfully rolled out dans la sortie de l'interface de ligne de commande.

    kubectl rollout status ds/ibmcloud-object-storage-driver -n ibm-object-s3fs
    
  7. Vérifiez que les pods IBM Cloud Object Storage sont à l'état Running.

    kubectl get pods -n <namespace> -o wide | grep object-storage
    

Si vous rencontrez des difficultés pour mettre à jour le plug-in IBM Cloud Object Storage, voir Stockage d'objets : échec de l'installation du plug-in ibmc Helm de stockage d'objets et Stockage d'objets : échec de l'installation du plug-in IBM Cloud Object Storage.

Suppression du plug-in IBM Cloud Object Storage

Si vous ne souhaitez pas fournir et utiliser IBM Cloud Object Storage dans votre cluster, vous pouvez désinstaller le plug-in ibm-object-storage-plugin et le plug-in ibmc Helm.

La suppression du plug-in ibmcHelm ou de ibm-object-storage-pluginne supprime pas les PVC, les PV ou les données existants. Lorsque vous supprimez ibm-object-storage-plugin, tous les jeux de pilotes et les ensembles de démons associés sont supprimés de votre cluster, ce qui signifie que vous ne pouvez pas fournir de nouveau IBM Cloud Object Storage pour votre cluster, à moins que vous ne configuriez votre application pour utiliser l'API IBM Cloud Object Storage directement. Il n'y a pas d'impact sur les PVC et les PV existants.

Avant de commencer :

Pour supprimer le plug-in ibmc Helm et ibm-object-storage-plugin:

  1. Obtenez le nom de votre installation Helm ibm-object-storage-plugin.

    helm ls -A | grep ibm-object-storage-plugin
    

    Exemple de sortie

    NAME                         NAMESPACE    REVISION    UPDATED                                 STATUS      CHART                                  APP VERSION               
    ibm-object-storage-plugin    default      2           2020-04-01 08:46:01.403477 -0400 EDT    deployed    ibm-object-storage-plugin-1.1.4        1.1.4  
    
  2. Désinstallez ibm-object-storage-plugin.

    helm uninstall <release_name>
    

    Exemple de commande pour une édition nommée ibm-object-storage-plugin.

    helm uninstall ibm-object-storage-plugin
    
  3. Vérifiez que les pods ibm-object-storage-plugin ont été retirés.

    kubectl get pod -n <namespace> | grep object-storage
    

    Le retrait des pods a abouti lorsqu'aucun pod n'est affiché dans la sortie de votre interface de ligne de commande. Le retrait des classes de stockage a abouti lorsqu'aucune classe de stockage n'est affichée dans la sortie de votre interface de ligne de commande.

  4. Vérifiez que les classes de stockage sont bien retirées.

    kubectl get sc | grep s3
    
  5. Si vous utilisez OS X ou une distribution Linux, retirez le plug-in Helm ibmc. Si vous utilisez Windows, cette étape n'est pas nécessaire.

    1. Retirez le plug-in Helm ibmc.
        helm plugin uninstall ibmc
        ```
    2. Vérifiez que le plug-in `ibmc` est bien retiré. Le retrait du plug-in `ibmc` a abouti si le plug-in `ibmc` n'est pas répertorié dans la sortie de l'interface de ligne de commande.
    
    ```sh {: pre}
        helm plugin list
        ```
        Exemple de sortie
    
        ```sh {: screen}
        NAME    VERSION    DESCRIPTION
        ```
    

Détermination de la configuration de stockage d'objets

IBM Cloud Kubernetes Service fournit des classes de stockage prédéfinies que vous pouvez utiliser pour créer des compartiments avec une configuration spécifique.

  1. Répertoriez les classes de stockage disponibles dans IBM Cloud Kubernetes Service.

    kubectl get sc | grep s3
    

    Exemple de sortie

    ibmc-s3fs-cold-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-cold-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-cross-region       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-regional           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-cross-region        ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-cross-region   ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-regional       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-regional            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-cross-region           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-regional               ibm.io/ibmc-s3fs   8m
    
  2. Sélectionnez une classe de stockage qui convient à vos exigences en matière d'accès aux données. La classe de stockage détermine la capacité de stockage, les opérations de lecture et d'écriture, ainsi que la bande passante sortante d'un compartiment. Le choix qui vous convient le mieux dépend de la fréquence à laquelle des données sont lues et écrites sur votre instance de service.

    • Standard : option utilisée pour les données les plus sollicitées auxquelles l'accès est fréquent. Les cas d'utilisation courants sont les applications Web ou mobiles.
    • Vault : option utilisée pour les charges de travail ou les données dont l'accès n'est pas fréquent, par exemple une fois par mois ou moins. Les cas d'utilisation courants sont les archives, la conservation à court-terme des données, la conservation de documents numériques, le remplacement d'une bande et la reprise après incident.
    • Cold : option utilisée pour les données les moins sollicitées qui font l'objet d'un accès peu fréquent (tous les 90 jours ou moins) ou les données inactives. Les cas d'utilisation courants sont les archives, les sauvegardes à long terme, les données d'historique que vous conservez à des fins de conformité ou les charges de travail ou les applications auxquelles l'accès est plutôt rare.
    • « Smart » : cette option est utilisée pour les charges de travail et les données qui ne suivent pas de modèle d'utilisation spécifique, ou dont le volume est trop important pour permettre de déterminer ou de prévoir un modèle d'utilisation.
  3. Déterminez le niveau de résilience des données stockées dans votre compartiment. Pour plus d'informations, voir Régions et noeuds finaux.

    • Cross-region : avec cette option, vos données sont stockées entre trois régions au sein d'une géolocalisation pour assurer une haute disponibilité. Si vous disposez de charges de travail réparties sur plusieurs régions, les demandes sont acheminées vers le noeud final régional le plus proche. Le noeud final d'API correspondant à la géolocalisation est automatiquement défini par le plug-in Helm ibmc que vous avez installé précédemment en fonction de l'emplacement de votre cluster. Par exemple, si votre cluster se trouve dans la région du Sud des Etats-Unis (US South), vos classes de stockage sont configurées pour utiliser le noeud final d'API US GEO pour vos compartiments.
    • Regional : avec cette option, vos données sont répliquées entre plusieurs zones au sein d'une région. Si vous disposez de charges de travail situées dans la même région, vous observez des temps d'attente plus faibles et de meilleures performances qu'avec une configuration inter-régionale. Le noeud final régional est automatiquement défini par le plug-in Helm ibm que vous avez installé auparavant en fonction de l'emplacement de votre cluster. Par exemple, si votre cluster se trouve dans la région du Sud des Etats-Unis (US South), vos classes de stockage ont été configurées pour utiliser le noeud final d'API US South pour vos compartiments.
  4. Passez en revue la configuration détaillée d'un compartiment IBM Cloud Object Storage pour une classe de stockage.

    kubectl describe storageclass <storageclass_name>
    

    Exemple de sortie

    Name:                  ibmc-s3fs-standard-cross-region
    IsDefaultClass:        No
    Annotations:           <none>
    Provisioner:           ibm.io/ibmc-s3fs
    Parameters:            ibm.io/chunk-size-mb=16,ibm.io/curl-debug=false,ibm.io/debug-level=warn,ibm.io/iam-endpoint=https://iam.bluemix.net,ibm.io/kernel-cache=true,ibm.io/multireq-max=20,ibm.io/object-store-endpoint=https://s3-api.dal-us-geo.objectstorage.service.networklayer.com,ibm.io/object-store-storage-class=us-standard,ibm.io/parallel-count=2,ibm.io/s3fs-fuse-retry-count=5,ibm.io/stat-cache-size=100000,ibm.io/tls-cipher-suite=AESGCM
    AllowVolumeExpansion:  <unset>
    MountOptions:          <none>
    ReclaimPolicy:         Delete
    VolumeBindingMode:     Immediate
    Events:                <none>
    
    ibm.io/chunk-size-mb
    Taille d'un bloc de données dont la lecture ou l'écriture s'effectue dans IBM Cloud Object Storage, exprimée en mégaoctets. Les classes de stockage dont le nom contient perf sont configurées avec 52 mégaoctets. Les classes de stockage dont le nom ne contient pas perf utilisent des blocs de 16 mégaoctets. Par exemple, pour lire un fichier d'une taille de 1GB, le plug-in lit ce fichier par blocs de 16 ou 52 mégaoctets.
    ibm.io/curl-debug
    Active la journalisation des demandes envoyées à l'instance de service IBM Cloud Object Storage. Si cette option est activée, les journaux sont envoyés à syslog et vous pouvez transférer les journaux à un serveur de journalisation externe. Par défaut, toutes les classes de stockage sont définies sur false pour désactiver cette fonction de journalisation.
    ibm.io/debug-level
    Niveau de journalisation défini par le plug-in IBM Cloud Object Storage. Toutes les classes de stockage sont définies avec le niveau de journalisation WARN.
    ibm.io/iam-endpoint
    Noeud final d'API pour IBM Cloud Identity and Access Management (IAM).
    ibm.io/kernel-cache
    Active ou désactive le cache de mémoire tampon du noyau pour le point de montage du volume. Si cette option est activée, les données lues dans IBM Cloud Object Storage sont stockées dans le cache du noyau pour garantir un accès en lecture rapide à vos données. Si cette option est désactivée, les données ne sont pas mises en cache et sont toujours lues à partir d'IBM Cloud Object Storage. Le cache du noyau est activé pour les classes de stockage « standard » et « smart », et désactivé pour les classes de stockage « cold » et « vault ».
    ibm.io/multireq-max
    Nombre maximal de demandes parallèles pouvant être envoyées à l'instance de service IBM Cloud Object Storage pour répertorier les fichiers d'un répertoire. Toutes les classes de stockage sont configurées avec un maximum de 20 demandes parallèles.
    ibm.io/object-store-endpoint
    Noeud final d'API à utiliser pour accéder au compartiment dans votre instance de service IBM Cloud Object Storage. Le noeud final est automatiquement défini en fonction de la région dans laquelle se trouve votre cluster. Si vous souhaitez accéder à un compartiment existant 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 de l'API correspondant à votre compartiment.
    ibm.io/object-store-storage-class
    Nom de la classe de stockage.
    ibm.io/parallel-count
    Nombre maximal de demandes parallèles pouvant être envoyées à l'instance de service IBM Cloud Object Storage pour une seule opération de lecture ou d'écriture. Les classes de stockage dont le nom contient perf sont configurées avec un maximum de 20 demandes parallèles. Les classes de stockage dont le nom ne contient pas perf sont configurées avec deux demandes parallèles par défaut.
    ibm.io/s3fs-fuse-retry-count
    Nombre maximal de relances d'une opération de lecture ou d'écriture avant de considérer qu'une opération a échoué. Toutes les classes de stockage sont configurées avec un maximum de cinq relances.
    ibm.io/stat-cache-size
    Nombre maximal d'enregistrements conservés dans le cache de métadonnées d'IBM Cloud Object Storage. Tous les enregistrements peuvent avoir jusqu'à 0,5 kilooctet. Toutes les classes de stockage règlent le nombre maximal d'enregistrements sur 100000 par défaut.
    ibm.io/tls-cipher-suite
    Suite de chiffrement TLS qui doit être utilisée lorsqu'une connexion à IBM Cloud Object Storage est établie via le noeud final HTTPS. La valeur de la suite de chiffrement doit respecter le format OpenSSL. Si vos noeuds worker exécutent un système d'exploitation Ubuntu, vos classes de stockage sont configurées pour utiliser la suite de chiffrement AESGCM par défaut. Pour les noeuds worker qui exécutent un système d'exploitation Red Hat, la suite de chiffrement ecdhe_rsa_aes_128_gcm_sha_256 est utilisée par défaut.

    Pour plus d'informations sur chaque classe de stockage, voir Référence des classes de stockage. Si vous souhaitez modifier l'une des valeurs prédéfinies, créez votre propre classe de stockage personnalisée.

  5. Déterminez le nom de votre compartiment. Ce nom doit être unique dans IBM Cloud Object Storage. Vous pouvez également opter pour la création automatique d'un nom pour votre compartiment par le plug-in IBM Cloud Object Storage. Pour organiser les données dans un compartiment, vous pouvez créer des sous-répertoires.

    La classe de stockage que vous avez choisie auparavant détermine la tarification de la totalité de votre compartiment. Vous ne pouvez pas définir différentes classes de stockage pour les sous-répertoires. Si vous souhaitez stocker les données avec différentes exigences en termes d'accès, envisagez la création de plusieurs compartiments en utilisant plusieurs réservations de volume persistant (PVC).

  6. Déterminez si vous voulez conserver vos données ainsi que le compartiment, après la suppression du cluster ou de la réservation de volume persistant (PVC). Lorsque vous supprimez la PVC, le volume persistant est toujours supprimé. Vous pouvez déterminer si vous souhaitez également supprimer les données et le compartiment lorsque vous supprimez la PVC. Votre instance de service IBM Cloud Object Storage est indépendante de la règle de conservation que vous sélectionnez pour vos données et n'est jamais retirée lorsque vous supprimez une PVC.

Dès que vous avez déterminé la configuration que vous désirez, vous êtes prêt à créer une PVC pour mettre à disposition IBM Cloud Object Storage.

Vérification de votre installation

Examinez les détails relatifs aux pods pour vérifier que l'installation du plug-in a abouti.

  1. Vérifiez que l'installation a réussi en listant les pods du pilote.

    kubectl get pod --all-namespaces -o wide | grep object
    

    Exemple de sortie

    ibmcloud-object-storage-driver-9n8g8                              1/1       Running   0          2m
    ibmcloud-object-storage-plugin-7c774d484b-pcnnx                   1/1       Running   0          2m
    

    L'installation a abouti lorsque vous voyez un pod ibmcloud-object-storage-plugin et un ou plusieurs pods ibmcloud-object-storage-driver. Le nombre de pods ibmcloud-object-storage-driver est égal au nombre de noeuds worker figurant dans votre cluster. Tous les pods doivent être à l'état Running pour que le plug-in fonctionne correctement. Si les pods échouent, exécutez kubectl describe pod -n ibm-object-s3fs <pod_name> pour rechercher la cause principale de l'échec.

  2. Vérifiez que la création des classes de stockage a abouti.

    kubectl get sc | grep s3
    

    Exemple de sortie

    ibmc-s3fs-cold-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-cold-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-cross-region            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-cross-region       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-perf-regional           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-smart-regional                ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-cross-region        ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-cross-region   ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-perf-regional       ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-standard-regional            ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-cross-region           ibm.io/ibmc-s3fs   8m
    ibmc-s3fs-vault-regional               ibm.io/ibmc-s3fs   8m
    

    Si vous souhaitez définir l'une des classes de stockage IBM Cloud Object Storage comme classe de stockage par défaut, exécutez kubectl patch storageclass <storageclass> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'. Remplacez <storageclass> par le nom de la classe de stockage IBM Cloud Object Storage.

  3. Suivez les instructions pour ajouter Object Storage à vos applications.

Si vous rencontrez des difficultés pour installer le plug-in IBM Cloud Object Storage, voir Stockage d'objets : échec de l'installation du plug-in ibmc Helm de stockage d'objets et Stockage d'objets : échec de l'installation du plug-in IBM Cloud Object Storage.