Installazione del plug-in IBM Cloud Object Storage

Virtual Private Cloud Infrastruttura classica

Installare il plug-in IBM Cloud Object Storage per impostare classi di archiviazione predefinite per IBM Cloud Object Storage. Puoi utilizzare queste classi di archiviazione per creare una PVC per eseguire il provisioning di IBM Cloud Object Storage per le tue applicazioni.

Installazione del plug-in tramite Helm

Prerequisiti
Il plugin IBM Cloud Object Storage richiede almeno 0.2 vCPU e 128 MB di memoria.

Prima di iniziare: Accedi al tuo account. Se applicabile, specifica il gruppo di risorse appropriato. Imposta il contesto per il tuo cluster.

Installa il plug-in ibmc Helm e il file ibm-object-storage-plugin:

  1. Assicurati che il tuo nodo di lavoro applichi la patch più recente per la tua versione secondaria per eseguire il tuo nodo di lavoro con le impostazioni di sicurezza più recenti. La versione patch garantisce anche che la password root sul nodo di lavoro sia rinnovata.

    Se non hai applicato gli aggiornamenti o ricaricato il tuo nodo di lavoro negli ultimi 90 giorni, la tua password root scade e l'installazione del plugin di archiviazione potrebbe non riuscire.

    1. Elenca la versione patch corrente dei tuoi nodi di lavoro.
        ibmcloud ks worker ls --cluster CLUSTER_NAME_OR_ID
        ```
        Output di esempio
        ```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*
        ```
        Se il tuo nodo di lavoro non applica la versione patch più recente, viene visualizzato un asterisco (`*`) nella colonna **Versione** del tuo output della CLI.
    
    2. Esamina le informazioni sulla versione di [Kubernetes](/docs/containers?topic=containers-cs_versions) per trovare le ultime modifiche.
    
    3. Applica la versione patch più recente ricaricando il tuo nodo di lavoro. Segui le istruzioni fornite nel [comando "ibmcloud ks worker reload](/docs/containers?topic=containers-kubernetes-service-cli#worker-reload-cli) " per riprogrammare in modo sicuro eventuali pod in esecuzione sul tuo nodo worker prima di ricaricare il nodo stesso. Nota che durante il ricaricamento, la macchina del nodo di lavoro viene aggiornata con l'immagine più recente e i dati vengono eliminati se non sono [archiviati all'esterno del nodo di lavoro](/docs/containers?topic=containers-storage-plan).
    
  2. Esamina il log delle modifiche e verifica il supporto per la tua versione e architettura del cluster.

  3. Segui le istruzioni per installare la versione 3 del client Helm sulla tua macchina locale.

    Se hai abilitato VRF e gli endpoint del servizio nel tuo account IBM Cloud, puoi utilizzare il repository Helm IBM Cloud privato per mantenere il traffico di pull dell'immagine sulla rete privata. Se non riesci ad abilitare i VRF o gli endpoint di servizio nel tuo account, utilizza il repository pubblico Helm.

  4. Aggiungi il repository IBM Cloud Helm al tuo cluster.

    helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
    
  5. Aggiorna i repository Helm per scaricare la versione più recente di tutti i grafici Helm presenti in questo repository.

    helm repo update
    
  6. Se in precedenza hai installato il plug-in " IBM Cloud Object Storage " ( Helm ), rimuovi il plug-in " ibmc ".

    helm plugin uninstall ibmc
    
  7. Scarica i grafici Helm e decomprimi i grafici nella directory corrente.

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

    Se l'output riporta il messaggio " Error: failed to untar: a file or directory with the name ibm-object-storage-plugin already exists", elimina la directory " ibm-object-storage-plugin " ed esegui nuovamente il comando " helm fetch ".

  8. Se si installa il plug-in per la prima volta, installare il plug-in IBM Cloud Object Storage Helm ibmc. Il plug-in rileva automaticamente la posizione del cluster e imposta l'endpoint API per i bucket " IBM Cloud Object Storage " nelle classi di archiviazione. Se si utilizza Windows come sistema operativo, saltare questo passaggio.

    Il plug-in ibmc non è supportato da Windows.

    1. Installa il plug-in Helm.
        helm plugin install ./ibm-object-storage-plugin/helm-ibmc
        ```
    2. Verifica che il plugin `ibmc` sia installato correttamente.
    ```sh {: pre}
        helm ibmc --help
        ```
        Output di esempio
        ```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. **Facoltativo**: se l'output riporta l'errore " `Error: fork/exec /home/iksadmin/.helm/plugins/helm-ibmc/ibmc.sh: permission denied`", eseguire il comando seguente.
    
    ```sh {: pre}
        chmod 755 /Users/<user_name>/Library/helm/plugins/helm-ibmc/ibmc.sh
        ```
        Quindi ripetere il comando `ibmc --help`.
    
        ```sh {: pre}
        helm ibmc --help
        ```
    
    
    
    
  9. Facoltativo: limitare l'accesso del plug-in " IBM Cloud Object Storage " esclusivamente ai segreti " Kubernetes " che contengono le credenziali del servizio " IBM Cloud Object Storage ". Per impostazione predefinita, il plug-in può accedere a tutti i segreti di Kubernetes presenti nel cluster.

    1. Crea la tua istanza del servizio IBM Cloud Object Storage.
    2. Memorizza le credenziali del tuo servizio IBM Cloud Object Storage in un segreto Kubernetes).
    3. Passare alla directory ibm-object-storage-plugin.
        cd ibm-object-storage-plugin
        ```
    3. Da `ibm-object-storage-plugin`, passare alla directory `templates` ed elencare i file disponibili.
            OS X e Linux
    
    ```sh {: pre}
        cd templates && ls
        ```
        Windows
    
        ```sh {: pre}
        chdir templates && dir
        ```
    4. Apri il file `provisioner-sa.yaml` e cerca la definizione di `ibmcloud-object-storage-secret-reader` `ClusterRole`.
    5. Aggiungi il nome del segreto che hai creato in precedenza all'elenco di segreti a cui il plug-in è autorizzato ad accedere nella sezione `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. Salvare le modifiche e passare alla directory di lavoro.
    
    
    
  10. Installa ibm-object-storage-plugin nel tuo cluster. Quando installi il plug-in, al tuo cluster vengono aggiunte le classi di archiviazione predefinite. Se hai completato il passo precedente per limitare il plugin IBM Cloud Object Storage per accedere solo ai segreti Kubernetes che contengono le tue credenziali del servizio IBM Cloud Object Storage e stai ancora selezionando la directory templates, modifica le directory nella tua directory di lavoro. Per impostare un limite sulla quantità di memoria disponibile per il bucket, imposta solo i --set quotaLimit=true cluster VPC: per abilitare gli IP autorizzati su VPC, imposta l'opzione --set bucketAccessPolicy=true.

Se non si imposta l'opzione --set quotaLimit=true durante l'installazione, non è possibile impostare le quote per le PVC.

Esempio di comandi helm ibmc install per sistemi operativi 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]

Comando helm install di esempio per 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
Un limite di quota imposta la quantità massima di memoria (in byte) disponibile per un bucket. Se imposti questa opzione su true, quando crei le PVC, la quota sui bucket creati da tali PVC è uguale alla dimensione della PVC. Il valore predefinito è true.
allowCrossNsSecret
Per impostazione predefinita, il plug-in ricerca il segreto Kubernetes negli spazi dei nomi diversi dallo spazio dei nomi PVC. Se imposti questa opzione su false il plug-in cerca il segreto Kubernetes solo nello spazio dei nomi PVC. Il valore predefinito è true.
kubeDriver
Impostare su /usr/libexec/kubernetes.
DC_NAME
Il data center del cluster. Per richiamare il data center, eseguire kubectl get cm cluster-info -n kube-system -o jsonpath="{.data.cluster-config\.json}{'\n'}". Archivia il valore del data center in una variabile di ambiente eseguendo SET DC_NAME=<datacenter>. Facoltativo: impostare la variabile di ambiente in Windows PowerShell eseguendo $env:DC_NAME="<datacenter>".
CLUSTER_PROVIDER
Il provider dell'infrastruttura. Per richiamare questo valore, eseguire kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/iaas-provider}{'\n'}". Se l'output dal passo precedente contiene softlayer, imposta CLUSTER_PROVIDER su "IBMC". Se l'output contiene gc, ng o g2, imposta CLUSTER_PROVIDER su "IBMC-VPC". Memorizza il provider dell'infrastruttura in una variabile di ambiente. Ad esempio: SET CLUSTER_PROVIDER="IBMC-VPC".
WORKER_OS e PLATFORM
Il sistema operativo dei nodi di lavoro. Per richiamare questi valori, eseguire kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/os}{'\n'}". Memorizza il sistema operativo dei nodi di lavoro in una variabile di ambiente. Per i cluster IBM Cloud Kubernetes Service, esegui SET WORKER_OS="debian" e SET PLATFORM="k8s".
REGION
La regione dei nodi di lavoro. Per richiamare questo valore, eseguire kubectl get nodes -o yaml | grep 'ibm-cloud\.kubernetes\.io/region'. Archivia la region dei nodi di lavoro in una variabile di ambiente eseguendo SET REGION="< region>".

Aggiornamento del plug-in IBM Cloud Object Storage

È possibile aggiornare il plug-in IBM Cloud Object Storage già installato alla versione più recente.

  1. Ottieni il nome della tua release Helm del plug-in IBM Cloud Object Storage e la versione del plug-in nel tuo cluster.

    helm ls -A | grep object
    

    Output di esempio

    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. Aggiorna il repository IBM Cloud Helm per recuperare la versione più recente di tutti i grafici Helm presenti in questo repository.

    helm repo update
    
  3. Aggiorna il plug-in IBM Cloud Object Storage ibmc Helm alla versione più recente.

    helm ibmc --update
    
  4. Installare la versione più recente di ibm-object-storage-plugin per il proprio sistema operativo.

    Esempio di comando helm ibmc upgrade per sistemi operativi 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]
    

    Comando helm upgrade di esempio per 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
    Il data center del cluster. Per richiamare il data center, eseguire kubectl get cm cluster-info -n kube-system -o jsonpath="{.data.cluster-config\.json}{'\n'}". Archivia il valore del data center in una variabile di ambiente eseguendo SET DC_NAME=<datacenter>. Facoltativo: impostare la variabile di ambiente in Windows PowerShell eseguendo $env:DC_NAME="<datacenter>".
    CLUSTER_PROVIDER
    Il provider dell'infrastruttura. Per richiamare questo valore, eseguire kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/iaas-provider}{'\n'}". Se l'output dal passo precedente contiene softlayer, imposta CLUSTER_PROVIDER su "IBMC". Se l'output contiene gc, ng o g2, imposta CLUSTER_PROVIDER su "IBMC-VPC". Memorizza il provider dell'infrastruttura in una variabile di ambiente. Ad esempio: SET CLUSTER_PROVIDER="IBMC-VPC".
    WORKER_OS e PLATFORM
    Il sistema operativo dei nodi di lavoro. Per richiamare questi valori, eseguire kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/os}{'\n'}". Memorizza il sistema operativo dei nodi di lavoro in una variabile di ambiente. Per i cluster IBM Cloud Kubernetes Service, esegui SET WORKER_OS="debian" e SET PLATFORM="k8s".
    REGION
    La regione dei nodi di lavoro. Per richiamare questo valore, eseguire kubectl get nodes -o yaml | grep 'ibm-cloud\.kubernetes\.io/region'. Archivia la regione dei nodi di lavoro in una variabile di ambiente eseguendo SET REGION="< region>".
  5. Verifica che l'upgrade di ibmcloud-object-storage-plugin venga eseguito correttamente. L'upgrade del plugin è riuscito quando vedi deployment "ibmcloud-object-storage-plugin" successfully rolled out nel tuo output della CLI.

    kubectl rollout status deployment/ibmcloud-object-storage-plugin -n ibm-object-s3fs
    
  6. Verifica che l'upgrade di ibmcloud-object-storage-driver venga eseguito correttamente. L'upgrade è riuscito quando vedi daemon set "ibmcloud-object-storage-driver" successfully rolled out nel tuo output della CLI.

    kubectl rollout status ds/ibmcloud-object-storage-driver -n ibm-object-s3fs
    
  7. Verifica che i pod IBM Cloud Object Storage siano in uno stato Running.

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

Se riscontri problemi nell'aggiornamento del plug-in " IBM Cloud Object Storage ", consulta i documenti " Object storage: Installazione del plug-in 'Object storage ibmc Helm ' non riuscita " e "Object storage: Installazione del plug-in ' IBM Cloud Object Storage ' non riuscita ".

Rimozione del plug-in " IBM Cloud Object Storage "

Se non desideri configurare e utilizzare IBM Cloud Object Storage nel tuo cluster, puoi disinstallare il plug-in ibm-object-storage-plugin e il plug-in ibmc Helm.

La rimozione del plug-in ibmc Helm o del file ibm-object-storage-plugin non comporta la cancellazione dei PVC, dei PV o dei dati esistenti. Quando si rimuove ibm-object-storage-plugin, tutti i pod dei driver e i set di demoni correlati vengono rimossi dal cluster, il che significa che non è possibile fornire nuovi IBM Cloud Object Storage per il cluster, a meno che non si configuri l'applicazione per usare direttamente l'API IBM Cloud Object Storage. Non vi è alcun impatto sulle PVC e sui PV esistenti.

Prima di cominciare:

Per rimuovere il plug-in ibmc Helm e il file ibm-object-storage-plugin:

  1. Ottieni il nome della tua installazione Helm ibm-object-storage-plugin.

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

    Output di esempio

    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. Disinstalla ibm-object-storage-plugin.

    helm uninstall <release_name>
    

    Comando di esempio per una versione denominata “ ibm-object-storage-plugin ”.

    helm uninstall ibm-object-storage-plugin
    
  3. Verifica che i pod ibm-object-storage-plugin siano stati rimossi.

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

    La rimozione dei pod è riuscita se nel tuo output della CLI non vengono visualizzati pod. La rimozione delle classi di archiviazione è riuscita se nel tuo output della CLI non vengono visualizzate classi di archiviazione.

  4. Verifica che le classi di archiviazione vengano rimosse.

    kubectl get sc | grep s3
    
  5. Se utilizzi una distribuzione Linux oppure OS X, rimuovi il plugin Helm ibmc. Se utilizzi Windows, questo passo non è necessario.

    1. Rimuovi il plug-in Helm ibmc.
        helm plugin uninstall ibmc
        ```
    2. Verifica che il plugin `ibmc` venga rimosso. Il plugin `ibmc` viene rimosso correttamente se il plugin `ibmc` non è elencato nel tuo output della CLI.
    
    ```sh {: pre}
        helm plugin list
        ```
        Output di esempio
    
        ```sh {: screen}
        NAME    VERSION    DESCRIPTION
        ```
    

Decisioni relative alla configurazione dell'archiviazione oggetti

IBM Cloud Kubernetes Service fornisce delle classi di archiviazione predefinite che puoi utilizzare per creare i bucket con una specifica configurazione.

  1. Elenca le classi di archiviazione disponibili in IBM Cloud Kubernetes Service.

    kubectl get sc | grep s3
    

    Output di esempio

    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. Scegli una classe di archiviazione adatta ai tuoi requisiti di accesso ai dati. La classe di archiviazione determina la capacità di archiviazione, le operazioni di lettura e scrittura e la larghezza di banda in uscita di un bucket. La scelta più adatta alle tue esigenze dipende dalla frequenza con cui vengono letti e scritti i dati nell'istanza del tuo servizio.

    • Standard: questa opzione è usata per i dati hot a cui si accede frequentemente. I casi d'uso comuni sono le applicazioni web o mobili.
    • Vault: questa opzione viene utilizzata per i carichi di lavoro o i dati cool a cui si accede poco di frequente, ad esempio una volta al mese o meno. I casi d'uso comuni sono gli archivi, la conservazione dei dati a breve termine, la conservazione di asset digitali, la sostituzione dei nastri e il ripristino d'emergenza.
    • Cold: questa opzione viene utilizzata per i dati cold a cui si accede raramente (ogni 90 giorni o meno) o i dati inattivi. I casi d'uso comuni sono gli archivi, i backup a lungo termine, i dati cronologici che conservi per la conformità oppure i carichi di lavoro e le applicazioni a cui si accede raramente.
    • Smart: questa opzione viene utilizzata per carichi di lavoro e dati che non seguono uno schema di utilizzo specifico o che sono troppo voluminosi per poter determinare o prevedere uno schema di utilizzo.
  3. Decidi il livello di resilienza per i dati archiviati nel tuo bucket. Per ulteriori informazioni, vedi Regioni ed endpoint.

    • Interregionale: con questa opzione, i tuoi dati vengono archiviati tra tre regioni all'interno di una geolocalizzazione per la massima disponibilità. Se hai dei carichi di lavoro distribuiti tra le regioni, le richieste vengono instradate all'endpoint regionale più vicino. L'endpoint API per la geolocalizzazione viene impostato automaticamente dal plugin Helm ibmc che hai installato in precedenza in base all'ubicazione in cui si trova il tuo cluster. Ad esempio, se il tuo cluster si trova negli US South, le tue classi di archiviazione sono configurate per utilizzare l'endpoint API US GEO per i tuoi bucket.
    • Regionale: con questa opzione, i tuoi dati vengono replicati in più zone all'interno di una singola regione. Se hai dei carichi di lavoro che si trovano nella stessa regione, vedi una latenza più bassa e delle prestazioni migliori rispetto a una configurazione interregionale. L'endpoint regionale viene impostato automaticamente dal plugin Helm ibm che hai installato in precedenza in base all'ubicazione in cui si trova il tuo cluster. Ad esempio, se il tuo cluster si trova negli US South, le tue classi di archiviazione erano configurate per utilizzare US South come endpoint regionale per i tuoi bucket.
  4. Riesamina la configurazione del bucket IBM Cloud Object Storage dettagliata per una classe di archiviazione.

    kubectl describe storageclass <storageclass_name>
    

    Output di esempio

    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
    La dimensione del blocco di dati letta da o scritta in IBM Cloud Object Storage, espressa in megabyte. Le classi di archiviazione il cui nome contiene la dicitura “ perf ” sono configurate con 52 megabyte. Le classi di archiviazione il cui nome non contiene la dicitura “ perf ” utilizzano blocchi da 16 megabyte. Ad esempio, se vuoi leggere un file che è 1GB, il plugin legge questo file in più blocchi da 16 o 52 megabyte.
    ibm.io/curl-debug
    Abilita la registrazione delle richieste inviate all'istanza del servizio IBM Cloud Object Storage. Se abilitata, i log vengono inviati a syslog e puoi inoltrare i log a un server di registrazione esterno. Per impostazione predefinita, tutte le classi di archiviazione sono impostate su “ false ” per disabilitare questa funzionalità di registrazione.
    ibm.io/debug-level
    Il livello di registrazione impostato dal plugin IBM Cloud Object Storage. Tutte le classi di archiviazione sono configurate con il livello di registrazione “ WARN ”.
    ibm.io/iam-endpoint
    L'endpoint API per IBM Cloud IAM (Identity and Access Management).
    ibm.io/kernel-cache
    Abilita o disabilita la cache del buffer del kernel per il punto di montaggio del volume. Se abilitata, i dati letti da IBM Cloud Object Storage sono archiviati nella cache del kernel per garantire un accesso in lettura rapido ai tuoi dati. Se disabilitata, i dati non vengono memorizzati nella cache e sono sempre letti da IBM Cloud Object Storage. La cache del kernel è abilitata per le classi di archiviazione standard e smart, mentre è disabilitata per le classi di archiviazione cold e vault.
    ibm.io/multireq-max
    Il numero massimo di richieste parallele che può essere inviato all'istanza del servizio IBM Cloud Object Storage per elencare i file in una singola directory. Tutte le classi di archiviazione sono configurate con un massimo di 20 richieste parallele.
    ibm.io/object-store-endpoint
    L'endpoint API da utilizzare per accedere al bucket nella tua istanza del servizio IBM Cloud Object Storage. L'endpoint viene impostato automaticamente in base alla regione del tuo cluster. Se desideri accedere a un bucket esistente 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 relativo al tuo bucket.
    ibm.io/object-store-storage-class
    Il nome della classe di archiviazione.
    ibm.io/parallel-count
    Il numero massimo di richieste parallele che può essere inviato all'istanza del servizio IBM Cloud Object Storage per una singola operazione di lettura o scrittura. Le classi di archiviazione il cui nome contiene la dicitura " perf " sono configurate per un massimo di 20 richieste parallele. Le classi di archiviazione prive di " perf " vengono configurate, per impostazione predefinita, con due richieste parallele.
    ibm.io/s3fs-fuse-retry-count
    Il numero massimo di nuovi tentativi per un'operazione di lettura o scrittura prima che l'operazione venga considerata non riuscita. Tutte le classi di archiviazione sono configurate con un massimo di cinque nuovi tentativi.
    ibm.io/stat-cache-size
    Il numero massimo di record conservato nella cache dei metadati IBM Cloud Object Storage. Ogni record può richiedere fino a 0,5 kilobyte. Tutte le classi di archiviazione impostano il numero massimo di record a 100000 per impostazione predefinita.
    ibm.io/tls-cipher-suite
    La suite di cifratura TLS che deve essere utilizzata quando viene stabilita una connessione a IBM Cloud Object Storage tramite l'endpoint HTTPS. Il valore della suite di cifratura deve seguire il formato OpenSSL. Se i nodi di lavoro utilizzano un sistema operativo Ubuntu, le classi di archiviazione sono configurate per utilizzare, per impostazione predefinita, la suite di cifratura AESGCM. Per i nodi di lavoro che utilizzano un sistema operativo Red Hat, viene utilizzata per impostazione predefinita la suite di cifratura ecdhe_rsa_aes_128_gcm_sha_256.

    Per ulteriori informazioni su ciascuna classe di archiviazione, vedi la sezione di riferimento delle classi di archiviazione. Se desideri modificare uno qualsiasi dei valori predefiniti, crea una classe di archiviazione personalizzata.

  5. Decidi un nome per il tuo bucket. Il nome di un bucket deve essere univoco in IBM Cloud Object Storage. Puoi anche scegliere di creare automaticamente un nome per il tuo bucket dal plugin IBM Cloud Object Storage. Per organizzare i dati in un bucket, puoi creare delle sottodirectory.

    La classe di archiviazione che hai scelto in precedenza determina il prezzo per l'intero bucket. Non è possibile definire classi di archiviazione diverse per le sottodirectory. Se vuoi archiviare i dati con requisiti di accesso differenti, considera la creazione di più bucket utilizzando più PVC.

  6. Scegli se vuoi mantenere i tuoi dati e il bucket dopo l'eliminazione del cluster o dell'attestazione del volume persistente (PVC, persistent volume claim). Quando elimini la PVC, il PV viene sempre eliminato. Puoi scegliere se vuoi anche eliminare automaticamente i dati e il bucket quando elimini la PVC. La tua istanza del servizio IBM Cloud Object Storage è indipendente dalla politica di conservazione che selezioni per i tuoi dati e non viene mai rimossa quando elimini una PVC.

Ora che hai deciso in merito alla configurazione che desideri, sei pronto a creare una PVC per eseguire il provisioning di IBM Cloud Object Storage.

Verifica dell'installazione

Esaminare i dettagli del pod per verificare che l'installazione del plug-in sia stata eseguita correttamente.

  1. Verificare che l'installazione sia riuscita elencando i pod del driver.

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

    Output di esempio

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

    L'installazione ha avuto esito positivo quando visualizzi un pod ibmcloud-object-storage-plugin e uno o più pod ibmcloud-object-storage-driver. Il numero di pod ibmcloud-object-storage-driver è uguale al numero di nodi di lavoro nel tuo cluster. Tutti i pod devono essere in uno stato Running perché il plugin funzioni correttamente. Se i pod non funzionano correttamente, eseguire il comando kubectl describe pod -n ibm-object-s3fs <pod_name> per individuare la causa principale del malfunzionamento.

  2. Verifica che le classi di archiviazione vengano create correttamente.

    kubectl get sc | grep s3
    

    Output di esempio

    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
    

    Se desideri impostare una delle classi di archiviazione IBM Cloud Object Storage come classe di archiviazione predefinita, esegui il comando kubectl patch storageclass <storageclass> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'. Sostituisci " <storageclass> " con il nome della classe di archiviazione " IBM Cloud Object Storage ".

  3. Segui le istruzioni per aggiungere Object Storage alle tue applicazioni.

Se riscontri difficoltà nell'installazione del plug-in " IBM Cloud Object Storage ", consulta le pagine " Object storage: Installazione del plug-in 'Object storage ibmc Helm ' non riuscita " e "Object storage: Installazione del plug-in ' IBM Cloud Object Storage ' non riuscita ".