Installazione del componente aggiuntivo del cluster IBM Cloud Object Storage
È possibile abilitare il componente aggiuntivo " IBM Cloud Object Storage " dalla console IBM Cloud o tramite la CLI.
Prerequisiti
- Il componente aggiuntivo IBM Cloud Object Storage richiede almeno 0.3 vCPU e 360 MB di memoria.
- Il componente aggiuntivo è disponibile per i nodi worker Red Hat CoreOS (RHCOS) e Ubuntu. Se il cluster ha sia nodi RHEL che RHCOS, il componente aggiuntivo viene distribuito solo sui nodi RHCOS.
- Impostare un' istanza di IBM Cloud Object Storage.
- Opzionale Se si intende usare il versioning del bucket, le credenziali del servizio devono avere le autorizzazioni di Manager o Writer per abilitare o disabilitare il versioning del bucket sul bucket. Per ulteriori informazioni, consultare il sito Introduzione alla gestione delle versioni.
Comprendere la creazione e la rimozione dei bucket
- È possibile utilizzare un bucket esistente specificando il nome del bucket nel PVC.
- Se si fornisce il nome di un bucket e questo non esiste, viene creato un bucket con quel nome.
- Se non si fornisce un nome al bucket, viene creato un bucket con la convenzione di denominazione
temp-xxx. - I bucket vengono eliminati in base ai criteri di recupero definiti nella classe di archiviazione.
- Se è impostato
reclaimPolicy: Delete, il bucket viene eliminato quando il PVC viene cancellato. - Se viene impostato
reclaimPolicy: Retain, il bucket viene mantenuto anche dopo la cancellazione del PVC.
- Se è impostato
Attivazione del componente aggiuntivo “ IBM Cloud Object Storage ” dalla console
- Dalla dashboard dei cluster di Red Hat OpenShift on IBM Cloud, seleziona il cluster in cui desideri abilitare il componente aggiuntivo.
- Nella sezione " Componenti aggiuntivi ", individua il Cloud Object Storage componente aggiuntivo e fare clic su Installa.
- Nel pannello "Installa componente aggiuntivo": Cloud Object Storage, selezionare una versione dal menu a tendina " Versione".
- Facoltativo: configurare i seguenti parametri.
maxVolumesPerNode- Imposta il numero massimo di volumi " IBM Cloud Object Storage " che possono essere montati su un singolo nodo. Il valore predefinito è
0, il che significa che non viene applicato alcun limite. restrictNodeServerScheduling- Impostare il valore su
trueper limitare l'esecuzione dei pod del nodeserver esclusivamente sui nodi contrassegnati con l'etichettacos.csi.ibm.io/csi-node=true. Il valore predefinito è ` `false, il che significa che i podnodeservervengono pianificati su tutti i nodi.
- Fai clic su Install. Potrebbero essere necessari diversi minuti prima che il componente aggiuntivo sia distribuito e pronto per l'utilizzo.
- Verificare l'installazione. Nella sezione " Componenti aggiuntivi ", verifica che il Cloud Object Storage componente aggiuntivo presenti uno stato di integrità " Normale ".
Abilitazione del componente aggiuntivo IBM Cloud Object Storage dalla CLI
Prima di iniziare: accedi al tuo cluster Red Hat OpenShift.
- Aggiorna il plug-in "
container-service" alla versione più recente.ibmcloud update && ibmcloud plugin update container-service - Elencare i componenti aggiuntivi e trovare la versione che si desidera installare.
ibmcloud oc cluster addon versions - Esaminare le opzioni aggiuntive.
ibmcloud oc cluster addon options --addon ibm-object-csi-driver [--version VERSION] - Installare il componente aggiuntivo.
ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER [--version VERSION] - Verificare l'installazione.
ibmcloud oc cluster addon ls --cluster CLUSTEROK Name Version Health State Health Status ibm-object-csi-driver 1.0 normal Addon Ready. For more info: http://ibm.biz/addon-state (H1500) - Elenca le classi di archiviazione disponibili. Il driver supporta sia le classi di archiviazione regionali che quelle interregionali per i programmi di montaggio
s3fserclone.oc get sc | grep objectibm-object-storage-smart-cross-region-rclone cos.s3.csi.ibm.io Delete Immediate false 17h ibm-object-storage-smart-cross-region-rclone-retain cos.s3.csi.ibm.io Retain Immediate false 17h ibm-object-storage-smart-cross-region-s3fs cos.s3.csi.ibm.io Delete Immediate false 17h ibm-object-storage-smart-cross-region-s3fs-retain cos.s3.csi.ibm.io Retain Immediate false 17h ibm-object-storage-smart-rclone cos.s3.csi.ibm.io Delete Immediate false 17h ibm-object-storage-smart-rclone-retain cos.s3.csi.ibm.io Retain Immediate false 17h ibm-object-storage-smart-s3fs cos.s3.csi.ibm.io Delete Immediate false 17h ibm-object-storage-smart-s3fs-retain cos.s3.csi.ibm.io Retain Immediate false 17h ibm-object-storage-standard-cross-region-rclone cos.s3.csi.ibm.io Delete Immediate false 17h ibm-object-storage-standard-cross-region-rclone-retain cos.s3.csi.ibm.io Retain Immediate false 17h ibm-object-storage-standard-cross-region-s3fs cos.s3.csi.ibm.io Delete Immediate false 17h ibm-object-storage-standard-cross-region-s3fs-retain cos.s3.csi.ibm.io Retain Immediate false 17h ibm-object-storage-standard-rclone cos.s3.csi.ibm.io Delete Immediate false 17h ibm-object-storage-standard-rclone-retain cos.s3.csi.ibm.io Retain Immediate false 17h ibm-object-storage-standard-s3fs cos.s3.csi.ibm.io Delete Immediate false 17h ibm-object-storage-standard-s3fs-retain cos.s3.csi.ibm.io Retain Immediate false 17h
Limitazione della pianificazione dei pod del nodeserver
Per impostazione predefinita, i pod del driver COS CSI nodeserver vengono pianificati su tutti i nodi del cluster. È possibile utilizzare il parametro restrictNodeServerScheduling per limitare la pianificazione dei
pod del nodeserver esclusivamente ai nodi contrassegnati con l'etichetta cos.csi.ibm.io/csi-node=true``.
È possibile configurare l' restrictNodeServerScheduling e al momento dell'attivazione del componente aggiuntivo oppure aggiornarla in un secondo momento applicando una patch all' ConfigMap.
- Per impostare
restrictNodeServerSchedulingall'attivazione del componente aggiuntivo, includere il flag--paramnel comando di abilitazione.ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "restrictNodeServerScheduling=true" - Per aggiornare
restrictNodeServerSchedulingdopo che l'estensione è già stata abilitata, segui questi passaggi.
- Elenca i nodi del tuo cluster e stabilisci dove desideri che vengano eseguiti i pod del driver COS.
Output di esempiooc get nodesNAME STATUS ROLES AGE VERSION 10.241.0.11 Ready <none> 5d2h v1.35.5+IKS 10.241.0.12 Ready <none> 5d2h v1.35.5+IKS 10.241.0.13 Ready <none> 5d2h v1.35.5+IKS 10.241.128.10 Ready <none> 5d2h v1.35.5+IKS 10.241.128.11 Ready <none> 5d2h v1.35.5+IKS 10.241.128.9 Ready <none> 5d2h v1.35.5+IKS 10.241.65.12 Ready <none> 5d2h v1.35.5+IKS 10.241.65.13 Ready <none> 5d2h v1.35.5+IKS 10.241.65.14 Ready <none> 5d2h v1.35.5+IKS - Verificare che i pod di nodeserver siano attualmente in esecuzione su tutti i nodi.
Output di esempiooc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ibm-object-csi-node-2pj2j 3/3 Running 0 145m 172.17.14.10 10.241.0.12 <none> <none> ibm-object-csi-node-7bhwh 3/3 Running 0 145m 172.17.1.72 10.241.65.12 <none> <none> ibm-object-csi-node-7l9hc 3/3 Running 0 145m 172.17.17.6 10.241.128.9 <none> <none> ibm-object-csi-node-cxzt7 3/3 Running 0 145m 172.17.39.72 10.241.0.11 <none> <none> ibm-object-csi-node-dw6qs 3/3 Running 0 145m 172.17.46.77 10.241.128.10 <none> <none> ibm-object-csi-node-rpcvr 3/3 Running 0 145m 172.17.32.198 10.241.65.13 <none> <none> ibm-object-csi-node-swqtg 3/3 Running 0 145m 172.17.16.69 10.241.0.13 <none> <none> ibm-object-csi-node-sxbbs 3/3 Running 0 145m 172.17.26.7 10.241.65.14 <none> <none> ibm-object-csi-node-xm8bt 3/3 Running 0 145m 172.17.20.200 10.241.128.11 <none> <none> - Contrassegna i nodi su cui desideri che vengano pianificati i pod di nodeserver.
Output di esempiooc label nodes NODE-NAME-1 NODE-NAME-2 cos.csi.ibm.io/csi-node=truenode/10.241.0.11 labeled node/10.241.0.12 labeled - Per attivare la restrizione, aggiorna il file
ConfigMap.Output di esempiooc patch cm managed-addon-ibm-object-csi-driver -n kube-system \ --type merge -p '{"data":{"restrictNodeServerScheduling":"true"}}'configmap/managed-addon-ibm-object-csi-driver patched - Verificare che i pod dei nodi server vengano pianificati esclusivamente su nodi contrassegnati.
Output di esempiooc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ibm-object-csi-node-cxzt7 3/3 Running 0 145m 172.17.39.72 10.241.0.11 <none> <none> ibm-object-csi-node-7bhwh 3/3 Running 0 145m 172.17.1.72 10.241.65.12 <none> <none>
| Impostazione | Modalità di funzionamento |
|---|---|
restrictNodeServerScheduling: "false" (predefinito) |
I pod di Nodeserver vengono pianificati su tutti i nodi. |
restrictNodeServerScheduling: "true" |
I pod dei server di nodo vengono pianificati solo sui nodi contrassegnati con l'etichetta " cos.csi.ibm.io/csi-node=true". |
Impostazione dei volumi massimi per nodo
Per impostazione predefinita, il driver COS CSI non limita il numero di volumi che possono essere montati su un singolo nodo. È possibile utilizzare il parametro maxVolumesPerNode per impostare il numero massimo di
volumi per nodo.
È possibile configurare l' maxVolumesPerNode e al momento dell'attivazione del componente aggiuntivo oppure aggiornarla in un secondo momento applicando una patch all' ConfigMap.
- Per impostare
maxVolumesPerNodeall'attivazione del componente aggiuntivo, includere il flag--paramnel comando di abilitazione.ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "maxVolumesPerNode=VALUE" - Per aggiornare
maxVolumesPerNodedopo che l'add-on è già stato abilitato, applicare la patch all'add-on gestito ConfigMap.Output di esempiooc patch cm managed-addon-ibm-object-csi-driver -n kube-system --type merge -p '{"data":{"maxVolumesPerNode":"VALUE"}}'configmap/managed-addon-ibm-object-csi-driver patched
| Impostazione | Modalità di funzionamento |
|---|---|
maxVolumesPerNode: "0" (predefinito) |
Non vi è alcun limite al numero di volumi che possono essere montati per ogni nodo. |
maxVolumesPerNode: "VALUE" |
Limita il numero di volumi che possono essere montati su un singolo nodo al valore specificato. |
Distribuzione di un'applicazione che utilizza IBM Cloud Object Storage
Creare un segreto Kubernetes che contenga le credenziali COS.
-
Salvate la seguente configurazione in un file chiamato
secret.yaml. Fornire credenziali IAM o HMAC, ma non entrambe.- Per le credenziali IAM, utilizzare una combinazione di
apiKeyeserviceIdda Object Storage. - Per le credenziali HMAC, utilizzare
accessKeyesecretKeyda Object Storage.
apiVersion: v1 kind: Secret type: cos-s3-csi-driver metadata: name: cos-secret-1 # Name your secret. This same name is used for the PVC in the following steps. namespace: <namespace> # Specify the namespace where you want to create the secret. data: apiKey: <base64-encoded-COS-Service-Instance-apikey> serviceID: <base64-encoded-COS-resource_instance_id> accessKey: <base64-encoded-HMAC-access_key_id> secretKey: <base64-encoded-HMAC-secret_access_key> kp-root-key-crn: <CRN> # Key Protect or HPCS root key crn in base64 encoded format stringData: bucketName: <bucket-name> # Optional. If you don't provide a bucket name, a bucket with the naming convention s3fs-timestamp-xxx or rclone-timestamp-xxx is created. bucketVersioning: "false" # Bucket versioning is set to false by default. Set to "true" to enable bucket versioning. Set to "false" to disable versioning for a bucket where versioning is enabled. Must be a string value. # uid: "3000" # Optional: Provide a uid to run as non root user. This must match runAsUser in SecurityContext of pod spec. mountOptions: | # Review or update the following default s3fs mount options #multipart_size=52 #multireq_max=20 #max_dirty_data=5120 #parallel_count=20 #max_stat_cache_size=100000 #retries=5 #kernel_cache # Review or update the following default rclone mount options #acl=private #bucket_acl=private #upload_cutoff=100Mi #chunk_size=16Mi #max_upload_parts=1000 #upload_concurrency=8mountOptions- È possibile personalizzare le opzioni di montaggio per
s3fsorclonemodificandomountOptionsnel proprio segreto. Allineare le opzioni specificate con la classe di archiviazione utilizzata dal PVC. Per rivedere i valori predefiniti di una classe di archiviazione, eseguireoc describe storageclass <storageclass_name>ooc describe storageclass <storageclass_name>. Per ulteriori informazioni, vedere le opzioni di montaggio s3fs e le opzioni di montaggiorclone.
Attualmente, il componente aggiuntivo è abilitato a supportare un insieme fisso di opzioni di montaggio con una corretta convalida per ogni opzione di montaggio. Se si desidera utilizzare altre opzioni di montaggio non presenti nell'elenco di convalida, contattare l'assistenza per abilitarle.
- Per le credenziali IAM, utilizzare una combinazione di
-
Codificare tutti i parametri dei dati segreti in base64.
echo -n "<value>" | base64 -
Aggiornare
secret.yamlcon i valori codificati in base64. -
Crea il segreto.
oc apply -f secret.yaml
Creare un PVC
È possibile utilizzare un unico segreto per più PVC o un segreto per PVC.
È possibile gestire questo comportamento utilizzando le seguenti annotazioni nel PVC yaml. Queste annotazioni aiutano il driver a mappare il PVC sul segreto corretto.
cos.csi.driver/secret: "<custom-secret>"
Assicurati che "secret", "PVC" e "pod" si trovino tutti nello stesso namespace
Esempio di PVC per una mappatura da segreto a PVC 1-to-1 assegnando al PVC lo stesso nome del segreto creato in precedenza.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cos-secret-1 # Give your PVC the same name as the secret you created in the previous step.
namespace: <namespace> # The namespace where you want to create the PVC.
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
storageClassName: <storage_class_name> # The storage class you want to use.
Esempio di PVC per l'utilizzo di 1 segreto per molti PVC utilizzando le annotazioni per specificare il segreto.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cos-csi-pvc1
namespace: <namespace> # The namespace where you want to create the PVC.
annotations:
cos.csi.driver/secret: "<custom-secret>"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 256Mi
storageClassName: <storage_class_name> # The storage class you want to use.
-
Scegliete uno degli esempi precedenti e personalizzatelo per il vostro caso d'uso. Per un elenco delle classi di archiviazione, vedere il riferimento alle classi di archiviazione.
-
Crea la PVC.
oc apply -f pvc.yaml
Crea una distribuzione
-
Salvate la seguente configurazione in un file chiamato
dep.yaml.apiVersion: apps/v1 kind: Deployment metadata: name: <name> labels: app: <name> spec: replicas: 1 selector: matchLabels: app: <name> template: metadata: labels: app: <name> spec: containers: - name: app-frontend image: <image> # Enter your app image. imagePullPolicy: IfNotPresent volumeMounts: - mountPath: <path_you_want_to_mount_the_volume_on> # For example `/dev` name: cos-csi-volume volumes: - name: cos-csi-volume persistentVolumeClaim: claimName: <pvc_name> # Enter the name of the PVC you created earlier. -
Crea la distribuzione.
oc apply -f dep.yaml
Disabilitazione del componente aggiuntivo IBM Cloud Object Storage
I segreti, i PVC e le distribuzioni esistenti non vengono cancellati dalla disattivazione del componente aggiuntivo o dagli aggiornamenti della patch. Non ci sono interruzioni nei carichi di lavoro esistenti dei clienti.
- Eseguire il seguente comando per disattivare il componente aggiuntivo.
Output di esempioibmcloud oc cluster addon disable ibm-object-csi-driver --cluster CLUSTERData and resources that you created for the add-on might be deleted when the add-on is disabled. Continue? [y/N]> y Disabling add-on ibm-object-csi-driver for cluster XXX... OK - Verificare che il componente aggiuntivo sia stato rimosso.
ibmcloud oc cluster addon ls --cluster CLUSTER
Migrazione dal plug-in Helm al componente aggiuntivo per cluster
-
Ottenete i dettagli dei vostri PVC e selezionatene uno da migrare.
oc get pvc --all-namespaces -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name' | tail -n +2 | while read namespace pvc; do kubectl describe pvc "$pvc" -n "$namespace" | grep 'volume.kubernetes.io/storage-provisioner: ibm.io/ibmc-s3fs' > /dev/null ; if [ $? -eq 0 ]; then echo "PVC: $pvc in Namespace: $namespace uses ibm.io/ibmc-s3fs storage provisioner"; fi; doneOutput di esempio
PVC: pvc-test in Namespace: default uses ibm.io/ibmc-s3fs storage provisioner -
Descrivere il PVC e ottenere il nome del secchio.
oc describe pvc <pvc_name> | grep ibm.io/bucket:Output di esempio
ibm.io/bucket: test-s3 -
Ricreate il vostro segreto con il nome del secchio incluso.
apiVersion: v1 kind: Secret type: cos-s3-csi-driver metadata: name: cos-secret-1 # Name your secret. namespace: <namespace> # Specify the namespace where you want to create the secret. data: accessKey: <base64-encoded-HMAC-access-key> secretKey: <base64-encoded-HMAC-secret-key> stringData: bucketName: <bucket-name> # uid: "3000" # Optional: Provide a uid to run as non root user. This must match runAsUser in SecurityContext of pod spec. mountOptions: | key1=value1 key2=value2 -
Trovare la classe di archiviazione utilizzata nel PVC.
oc describe pvc <pvc_name> | grep StorageClass:Esempio di comando per un PVC chiamato
test-s3.oc describe pvc test-s3 | grep StorageClass:Output di esempio
StorageClass: ibmc-s3fs-smart-perf-regional -
Esaminare le nuove classi di archiviazione disponibili con il componente aggiuntivo e selezionare una classe sostitutiva.
- Se si è utilizzata una classe
flex, scegliere una delle nuove classismart. - Se avete usato una classe
standard, scegliete una delle nuove classistandard. - Le classi
coldevaultnon sono più disponibili con il componente aggiuntivo; scegliete invece una classesmartostandard.
- Se si è utilizzata una classe
-
Esaminate i dettagli del vostro PVC.
oc describe pvc test-s3Output di esempio
Name: pvc-test Namespace: default StorageClass: ibmc-s3fs-smart-perf-regional Status: Bound Volume: pvc-c625474d-31f0-4929-bc3e-feace1fb42fb Labels: <none> Annotations: ibm.io/auto-create-bucket: true ibm.io/auto-delete-bucket: true ibm.io/bucket: bha-test-s23 ibm.io/secret-name: satstoragesecret pv.kubernetes.io/bind-completed: yes pv.kubernetes.io/bound-by-controller: yes volume.kubernetes.io/storage-provisioner: ibm.io/ibmc-s3fs Finalizers: [kubernetes.io/pvc-protection] Capacity: 3Gi Access Modes: RWO VolumeMode: Filesystem Used By: test-pod Events: <none> -
Creare un PVC sostitutivo che utilizzi una nuova classe di archiviazione e faccia riferimento al segreto creato in precedenza.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cos-csi-pvc1 namespace: <namespace> # The namespace where you want to create the PVC. annotations: cos.csi.driver/secret: "cos-secret-1" # Secret created in step 4 spec: accessModes: - ReadWriteOnce resources: requests: storage: 256Mi storageClassName: <storage_class_name> # The storage class you picked based on old storage class mapping. -
Verificare che il PVC sia
Bound.oc get pvc -
Scopri i dettagli della tua app.
oc get pods -
Riducete la vostra applicazione a zero.
kubectl scale deployment --replicas=0 my-app -
Creare un'installazione sostitutiva che faccia riferimento al PVC creato nel passaggio precedente.
-
Dopo che la nuova installazione client è in esecuzione, è possibile eliminare la vecchia installazione client.
-
Ripeti questi passaggi per ogni PVC che desideri migrare.
IBM Cloud Object Storage classi di archiviazione aggiuntive al cluster
Il componente aggiuntivo per cluster IBM Cloud Object Storage fornisce classi di archiviazione per i montaggi s3fs e rclone. Scegli una classe di archiviazione adatta ai tuoi requisiti di accesso ai dati. La classe
di archiviazione determina la classe del bucket, il criterio di recupero e il comportamento di montaggio predefinito per il bucket creato per il carico di lavoro.
- Standard
- Utilizzare per i dati caldi a cui si accede di frequente, come i dati per le applicazioni web o mobili.
- Intelligenza
- Da utilizzare per carichi di lavoro e dati che non seguono un modello di utilizzo specifico o quando il modello di utilizzo è difficile da prevedere.
| Nome | Classe Secchiello | Resilienza | Montatore | Politica di riacquisizione | Modalità di binding |
|---|---|---|---|---|---|
| ibm-object-storage-smart-cross-region-rclone | Intelligenza | Interregionale | rclone |
Elimina | Immediato |
| ibm-object-storage-smart-cross-region-rclone-retain | Intelligenza | Interregionale | rclone |
Conserva | Immediato |
| ibm-object-storage-smart-cross-region-s3fs | Intelligenza | Interregionale | s3fs |
Elimina | Immediato |
| ibm-object-storage-smart-cross-region-s3fs-retain | Intelligenza | Interregionale | s3fs |
Conserva | Immediato |
| ibm-object-storage-smart-rclone | Intelligenza | Regionale | rclone |
Elimina | Immediato |
| ibm-object-storage-smart-rclone-retain | Intelligenza | Regionale | rclone |
Conserva | Immediato |
| ibm-object-storage-smart-s3fs | Intelligenza | Regionale | s3fs |
Elimina | Immediato |
| ibm-object-storage-smart-s3fs-retain | Intelligenza | Regionale | s3fs |
Conserva | Immediato |
| ibm-object-storage-standard-cross-region-rclone | Standard | Interregionale | rclone |
Elimina | Immediato |
| ibm-object-storage-standard-interregionale-rclone-retain | Standard | Interregionale | rclone |
Conserva | Immediato |
| ibm-object-storage-standard-cross-region-s3fs | Standard | Interregionale | s3fs |
Elimina | Immediato |
| ibm-object-storage-standard-cross-region-s3fs-retain | Standard | Interregionale | s3fs |
Conserva | Immediato |
| ibm-object-storage-standard-rclone | Standard | Regionale | rclone |
Elimina | Immediato |
| ibm-object-storage-standard-rclone-retain | Standard | Regionale | rclone |
Conserva | Immediato |
| ibm-object-storage-standard-s3fs | Standard | Regionale | s3fs |
Elimina | Immediato |
| ibm-object-storage-standard-s3fs-retain | Standard | Regionale | s3fs |
Conserva | Immediato |
Per esaminare la configurazione dettagliata dei bucket per una classe di archiviazione, eseguire oc describe storageclass <storageclass_name> o oc describe storageclass <storageclass_name>.
Parametri classe di storage
Tutte le classi di archiviazione aggiuntive al cluster includono i seguenti parametri fondamentali.
| Parametro | Descrizione |
|---|---|
client |
Identifica il tipo di client utilizzato dal driver. Le classi di archiviazione aggiuntive utilizzano awss3. |
cosEndpoint |
Definisce l'endpoint IBM Cloud Object Storage per la regione del bucket. |
csi.storage.k8s.io/node-publish-secret-name |
Fa riferimento al nome del segreto che contiene le credenziali di IBM Cloud Object Storage. |
csi.storage.k8s.io/node-publish-secret-namespace |
Fa riferimento allo spazio dei nomi del segreto che contiene le credenziali di IBM Cloud Object Storage. |
locationConstraint |
Definisce la classe e la regione del secchio, ad esempio au-syd-smart o au-syd-standard. |
mounter |
Specifica se la classe di archiviazione utilizza il mounter s3fs o rclone. |
Opzioni di montaggio predefinite della classe di archiviazione s3fs
Le classi di archiviazione di s3fs utilizzano le seguenti opzioni di montaggio predefinite.
| Opzione di montaggio | Descrizione |
|---|---|
multipart_size=52 |
Imposta la dimensione della parte, in MB, per ogni richiesta multipart. |
multireq_max=20 |
Imposta il numero massimo di richieste parallele per gli oggetti dell'elenco. |
max_dirty_data=5120 |
Esegue il flussaggio dei dati sporchi su S3 dopo un numero specificato di MB scritti. Il valore minimo supportato è 50. Un valore di -1 disabilita questo comportamento. |
parallel_count=20 |
Imposta il numero di richieste parallele per il caricamento di oggetti di grandi dimensioni. s3fs carica oggetti di grandi dimensioni utilizzando richieste multipart e invia le richieste in parallelo. |
max_stat_cache_size=100000 |
Imposta il numero massimo di voci nella cache delle statistiche e nella cache dei collegamenti simbolici. |
retries=5 |
Imposta il numero di volte in cui riprovare una transazione S3 fallita. |
kernel_cache |
Abilita la cache del buffer del kernel per il punto di montaggio del volume. I dati letti da IBM Cloud Object Storage vengono memorizzati nella cache del kernel per garantire un accesso più rapido alla lettura. La cache del kernel è
abilitata per le classi di archiviazione standard e smart s3fs. |
Opzioni di montaggio predefinite della classe di archiviazione rclone
Le classi di archiviazione di rclone utilizzano le seguenti opzioni di montaggio predefinite.
| Opzione di montaggio | Descrizione |
|---|---|
acl=private |
Assicura che gli oggetti caricati non siano accessibili pubblicamente. |
bucket_acl=private |
Imposta l'ACL predefinita per i bucket creati da rclone a private. |
upload_cutoff=100Mi |
Carica file di dimensioni superiori a 100 MiB utilizzando il caricamento multipart. I file più piccoli vengono caricati in un'unica richiesta. |
chunk_size=16Mi |
Imposta la dimensione di ciascuna parte in un caricamento multipart. |
max_upload_parts=1000 |
Imposta il numero massimo di parti per il caricamento multipart e, indirettamente, limita la dimensione massima del file supportata con il sito chunk_size. Con chunk_size=16Mi, la dimensione massima del file
è 16 GiB. |
upload_concurrency=8 |
Imposta il numero di parti caricate in parallelo durante un caricamento multipart. |