Instalando o complemento de cluster IBM Cloud Object Storage

Você pode ativar o complemento “ IBM Cloud Object Storage ” pelo console do IBM Cloud ou pela CLI.

Pré-requisitos:

  • O complemento IBM Cloud Object Storage requer pelo menos 0.3 vCPU e 360 MB de memória.
  • O complemento está disponível para os nós de trabalho Red Hat CoreOS (RHCOS) e Ubuntu. Se o seu cluster tiver nós RHEL e RHCOS, o complemento será implantado somente nos nós RHCOS.
  • Configure uma instância do IBM Cloud Object Storage.
  • Opcional Se você planeja usar o controle de versão do bucket, suas credenciais de serviço devem ter permissões de Manager ou Writer para ativar ou desativar o controle de versão do bucket no bucket. Para obter mais informações, acesse Introdução ao controle de versões.

Compreensão da criação e remoção de baldes

  • Você pode usar um bucket existente especificando o nome do bucket em seu PVC.
  • Se você fornecer um nome de bucket e esse bucket não existir, será criado um bucket com esse nome.
  • Se você não fornecer um nome de bucket, será criado um bucket com a convenção de nomenclatura temp-xxx.
  • Os compartimentos são excluídos com base na política de recuperação definida em sua classe de armazenamento.
    • Se reclaimPolicy: Delete for definido, o bucket será excluído quando o PVC for excluído.
    • Se reclaimPolicy: Retain for definido, o bucket será mantido mesmo depois que o PVC for excluído.

Ativando o complemento “ IBM Cloud Object Storage ” no console

  1. No painel do cluster do Red Hat OpenShift on IBM Cloud, selecione o cluster no qual você deseja ativar o complemento.
  2. Na seção “Complementos”, localize o Cloud Object Storage complemento e clique em “Instalar ”.
  3. No painel “Instalar complemento: Cloud Object Storage ”, selecione uma versão no menu suspenso “Versão ”.
  4. Opcional: Configure os seguintes parâmetros.
maxVolumesPerNode
Defina o número máximo de volumes do IBM Cloud Object Storage que podem ser montados em um único nó. O valor padrão é 0``, o que significa que nenhum limite é aplicado.
restrictNodeServerScheduling
Defina como true para restringir a execução dos pods do nodeserver apenas aos nós rotulados como cos.csi.ibm.io/csi-node=true. O valor padrão é ` `false, o que significa que os pods do nodeserver são agendados em todos os nós.
  1. Clique em Instalar. O complemento pode levar alguns minutos para ser implementado e ficar pronto para uso
  2. Verifique a instalação. Na seção “Complementos ”, verifique se o Cloud Object Storage complemento apresenta um estado de integridade “Normal ”.

Ativação do complemento IBM Cloud Object Storage na CLI

Antes de começar: acesse o seu cluster do Red Hat OpenShift.

  1. Atualize o plug-in “ container-service ” para a versão mais recente.
    ibmcloud update && ibmcloud plugin update container-service
    
  2. Liste os complementos e encontre a versão que você deseja instalar.
    ibmcloud oc cluster addon versions
    
  3. Revise as opções do complemento.
    ibmcloud oc cluster addon options --addon ibm-object-csi-driver [--version VERSION]
    
  4. Instale o complemento.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER [--version VERSION]
    
  5. Verifique a instalação.
    ibmcloud oc cluster addon ls --cluster CLUSTER
    
    OK
    Name                    Version   Health State   Health Status
    ibm-object-csi-driver   1.0       normal         Addon Ready. For more info: http://ibm.biz/addon-state (H1500)
    
  6. Liste as classes de armazenamento disponíveis. O driver oferece suporte a classes de armazenamento regionais e inter-regionais para os montadores s3fs e rclone.
    oc get sc | grep object
    
    ibm-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
    

Restrição do agendamento de pods do nodeserver

Por padrão, os pods do servidor de nós do driver COS CSI são agendados em todos os nós do cluster. Você pode usar o parâmetro restrictNodeServerScheduling para restringir o agendamento de pods do nodeserver apenas aos nós rotulados com cos.csi.ibm.io/csi-node=true``.

Você pode configurar o restrictNodeServerScheduling ao ativar o complemento ou atualizá-lo posteriormente aplicando o patch no ConfigMap.

  • Para definir restrictNodeServerScheduling ao ativar o complemento, inclua o sinalizador --param no comando de ativação.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "restrictNodeServerScheduling=true"
    
  • Para atualizar o “ restrictNodeServerScheduling ” depois que o complemento já estiver ativado, siga estas etapas.
  1. Liste os nós do seu cluster e determine onde você deseja que os pods do driver COS sejam executados.
    oc get nodes
    
    Exemplo de saída
    NAME            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
    
  2. Verifique se os pods do nodeserver estão em execução em todos os nós.
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    Exemplo de saída
    NAME                        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>
    
  3. Identifique os nós nos quais você deseja que os pods do nodeserver sejam agendados.
    oc label nodes NODE-NAME-1 NODE-NAME-2 cos.csi.ibm.io/csi-node=true
    
    Exemplo de saída
    node/10.241.0.11 labeled
    node/10.241.0.12 labeled
    
  4. Ative a restrição atualizando o arquivo ConfigMap.
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system \
      --type merge -p '{"data":{"restrictNodeServerScheduling":"true"}}'
    
    Exemplo de saída
    configmap/managed-addon-ibm-object-csi-driver patched
    
  5. Verifique se os pods do nodeserver são agendados apenas em nós rotulados.
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    Exemplo de saída
    NAME                        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>
    
restrictNodeServerScheduling opções
Configuração Comportamento
restrictNodeServerScheduling: "false" (padrão) Os pods do Nodeserver são agendados em todos os nós.
restrictNodeServerScheduling: "true" Os pods do Nodeserver são agendados apenas em nós rotulados como “ cos.csi.ibm.io/csi-node=true ”.

Definição dos volumes máximos por nó

Por padrão, o driver COS CSI não limita o número de volumes que podem ser montados em um único nó. Você pode usar o parâmetro maxVolumesPerNode para definir um número máximo de volumes por nó.

Você pode configurar o maxVolumesPerNode ao ativar o complemento ou atualizá-lo posteriormente aplicando o patch no ConfigMap.

  • Para definir maxVolumesPerNode ao ativar o complemento, inclua o sinalizador --param no comando de ativação.
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "maxVolumesPerNode=VALUE"
    
  • Para atualizar o maxVolumesPerNode depois que o complemento já estiver habilitado, aplique a correção ao complemento gerenciado ConfigMap.
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system --type merge -p '{"data":{"maxVolumesPerNode":"VALUE"}}'
    
    Exemplo de saída
    configmap/managed-addon-ibm-object-csi-driver patched
    
maxVolumesPerNode opções
Configuração Comportamento
maxVolumesPerNode: "0" (padrão) Não há limite para o número de volumes que podem ser montados por nó.
maxVolumesPerNode: "VALUE" Limita o número de volumes que podem ser montados em um único nó ao valor especificado.

Implantação de um aplicativo que utiliza IBM Cloud Object Storage

Crie um segredo do Kubernetes que contenha suas credenciais do COS.

  1. Acesse o seu Red Hat OpenShift cluster.

  2. Salve a configuração a seguir em um arquivo chamado secret.yaml. Forneça credenciais de IAM ou HMAC, mas não ambos.

    • Para credenciais de IAM, use uma combinação de apiKey e serviceId de Object Storage.
    • Para credenciais HMAC, use accessKey e secretKey de 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=8
    
    mountOptions
    Você pode personalizar as opções de montagem para s3fs ou rclone editando o mountOptions em seu segredo. Alinhe as opções que você especificar com a classe de armazenamento que seu PVC usa. Para revisar os valores padrão de uma classe de armazenamento, execute oc describe storageclass <storageclass_name> ou oc describe storageclass <storageclass_name>. Para obter mais informações, consulte as opções de montagem s3fs e as opções de montagem rclone.

    Atualmente, o complemento está habilitado para suportar um conjunto fixo de opções de montagem com validação adequada para cada opção de montagem. Se quiser usar qualquer outra opção de montagem que não esteja na lista de validação, entre em contato com o suporte para ativar essas opções.

  3. Codifique todos os parâmetros de dados secretos para base64.

    echo -n "<value>" | base64
    
  4. Atualize o site secret.yaml com os valores codificados em base64.

  5. Crie o segredo.

    oc apply -f secret.yaml
    

Criar um PVC

Você pode usar um único segredo em vários PVCs ou um segredo por PVC.

Você pode gerenciar esse comportamento usando as seguintes anotações no PVC yaml. Essas anotações ajudam o driver a mapear o PVC para o segredo correto.

cos.csi.driver/secret: "<custom-secret>"

Certifique-se de que seu segredo, o PVC e os pods estejam todos no mesmo namespace

Exemplo de PVC para um mapeamento de 1-to-1 segredo para PVC, dando ao seu PVC o mesmo nome do segredo que você criou anteriormente.

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.

Exemplo de PVC para usar 1 segredo para muitos PVCs usando anotações para especificar o segredo.

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.
  1. Escolha um dos exemplos anteriores e personalize-o de acordo com seu caso de uso. Para obter uma lista das classes de armazenamento, consulte a referência da classe Storage.

  2. Crie o PVC.

    oc apply -f pvc.yaml
    

Criar uma implementação

  1. Salve a configuração a seguir em um arquivo chamado 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.
    
  2. Crie a implementação.

    oc apply -f dep.yaml
    

Desativando o complemento IBM Cloud Object Storage

Os segredos, PVCs e implantações existentes não são excluídos pela desativação do complemento ou por atualizações de patches. Não há interrupções nas cargas de trabalho existentes dos clientes.

  1. Execute o comando a seguir para desativar o complemento.
     ibmcloud oc cluster addon disable ibm-object-csi-driver --cluster CLUSTER
    
    Exemplo de saída
    Data 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
    
  2. Verifique se o complemento foi removido.
    ibmcloud oc cluster addon ls --cluster CLUSTER
    

Migração do plug-in Helm para o complemento de cluster

  1. Acesse o seu Red Hat OpenShift cluster.

  2. Obtenha os detalhes de seus PVCs e selecione um para migrar.

    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; done
    

    Exemplo de saída

    PVC: pvc-test in Namespace: default uses ibm.io/ibmc-s3fs storage provisioner
    
  3. Descreva o PVC e obtenha o nome do balde.

    oc describe pvc <pvc_name> | grep ibm.io/bucket:
    

    Exemplo de saída

    ibm.io/bucket: test-s3
    
  4. Recrie seu segredo com o nome do balde incluído.

    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
    
  5. Encontre a classe de armazenamento que foi usada em seu PVC.

    oc describe pvc <pvc_name> | grep StorageClass:
    

    Exemplo de comando para um PVC chamado test-s3.

    oc describe pvc test-s3 | grep StorageClass:
    

    Exemplo de saída

    StorageClass:  ibmc-s3fs-smart-perf-regional
    
  6. Revise as novas classes de armazenamento disponíveis com o add-on e selecione uma classe de substituição.

    • Se você usou uma classe flex, escolha uma das novas classes smart.
    • Se você usou uma classe standard, escolha uma das novas classes standard.
    • As classes cold e vault não estão mais disponíveis com o add-on; em vez disso, escolha uma classe smart ou standard.
  7. Analise os detalhes de seu PVC.

    oc describe pvc test-s3
    

    Exemplo de saída

    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>
    
  8. Crie um PVC de substituição que use uma nova classe de armazenamento e faça referência ao segredo que você criou anteriormente.

    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.
    
  9. Verifique se o PVC é Bound.

    oc get pvc
    
  10. Veja os detalhes do seu aplicativo.

    oc get pods
    
  11. Reduza seu aplicativo a zero.

    kubectl scale deployment --replicas=0 my-app
    
  12. Crie uma implantação de substituição que faça referência ao PVC que você criou na etapa anterior.

  13. Depois que a nova implantação estiver em execução, você poderá excluir a implantação antiga.

  14. Repita essas etapas para cada PVC que você deseja migrar.

IBM Cloud Object Storage classes de armazenamento complementares do cluster

O complemento de cluster IBM Cloud Object Storage fornece classes de armazenamento para os montadores s3fs e rclone. Escolha uma classe de armazenamento que se ajuste aos seus requisitos de acesso a dados. A classe de armazenamento determina a classe do bucket, a política de recuperação e o comportamento de montagem padrão para o bucket criado para sua carga de trabalho.

Standard
Use para dados quentes que você acessa com frequência, como dados para aplicativos da Web ou móveis.
Inteligente
Use para cargas de trabalho e dados que não seguem um padrão de uso específico ou quando for difícil prever o padrão de uso.
Classes de armazenamento complementares do cluster COS
Nome Classe de depósito Resiliência Montador Política de recuperação Modo de Ligação
ibm-armazenamento-de-objetos-smart-entre-regiões-rclone Inteligente Inter-regional rclone Excluir Imediato
ibm-armazenamento-de-objetos-smart-entre-regiões-rclone-retain Inteligente Inter-regional rclone Reter Imediato
ibm-object-storage-smart-cross-region-s3fs Inteligente Inter-regional s3fs Excluir Imediato
ibm-object-storage-smart-cross-region-s3fs-retain Inteligente Inter-regional s3fs Reter Imediato
ibm-object-storage-smart-rclone Inteligente Regional rclone Excluir Imediato
ibm-armazenamento-de-objetos-smart-rclone-retain Inteligente Regional rclone Reter Imediato
ibm-object-storage-smart-s3fs Inteligente Regional s3fs Excluir Imediato
ibm-object-storage-smart-s3fs-retain Inteligente Regional s3fs Reter Imediato
ibm-object-storage-standard-entre-regiões-rclone Standard Inter-regional rclone Excluir Imediato
ibm-object-storage-standard-entre-regiões-rclone-retain Standard Inter-regional rclone Reter Imediato
ibm-object-storage-standard-cross-region-s3fs Standard Inter-regional s3fs Excluir Imediato
ibm-object-storage-standard-cross-region-s3fs-retain Standard Inter-regional s3fs Reter Imediato
ibm-object-storage-standard-rclone Standard Regional rclone Excluir Imediato
ibm-object-storage-standard-rclone-retain Standard Regional rclone Reter Imediato
ibm-object-storage-standard-s3fs Standard Regional s3fs Excluir Imediato
ibm-object-storage-standard-s3fs-retain Standard Regional s3fs Reter Imediato

Para revisar a configuração detalhada do bucket para uma classe de armazenamento, execute oc describe storageclass <storageclass_name> ou oc describe storageclass <storageclass_name>.

Parâmetros de classe de armazenamento

Todas as classes de armazenamento complementar de cluster incluem os seguintes parâmetros principais.

Parâmetros principais para classes de armazenamento complementares de cluster COS
Parâmetro Descrição
client Identifica o tipo de cliente que o driver usa. As classes de armazenamento complementar usam awss3.
cosEndpoint Define o ponto de extremidade IBM Cloud Object Storage para a região do compartimento.
csi.storage.k8s.io/node-publish-secret-name Faz referência ao nome do segredo que contém suas credenciais IBM Cloud Object Storage.
csi.storage.k8s.io/node-publish-secret-namespace Faz referência ao namespace do segredo que contém suas credenciais IBM Cloud Object Storage.
locationConstraint Define a classe e a região do bucket, como au-syd-smart ou au-syd-standard.
mounter Especifica se a classe de armazenamento usa o montador s3fs ou rclone.

Opções de montagem padrão da classe de armazenamento s3fs

As classes de armazenamento s3fs usam as seguintes opções de montagem padrão.

Opções padrão de montagem para as classes de armazenamento do complemento COS “ s3fs ”
Opção de montagem Descrição
multipart_size=52 Define o tamanho da parte, em MB, para cada solicitação de várias partes.
multireq_max=20 Define o número máximo de solicitações paralelas para listar objetos.
max_dirty_data=5120 Descarrega os dados sujos em S3 depois que um número especificado de MB é gravado. O valor mínimo suportado é 50. Um valor de -1 desativa esse comportamento.
parallel_count=20 Define o número de solicitações paralelas para fazer upload de objetos grandes. O site s3fs faz upload de objetos grandes usando solicitações de várias partes e envia solicitações em paralelo.
max_stat_cache_size=100000 Define o número máximo de entradas no cache de estatísticas e no cache de links simbólicos.
retries=5 Define o número de vezes para tentar novamente uma transação S3 que falhou.
kernel_cache Ativa o cache de buffer do kernel para o ponto de montagem do volume. Os dados que são lidos em IBM Cloud Object Storage são armazenados no cache do kernel para ajudar a proporcionar um acesso de leitura mais rápido. O cache do kernel está ativado para as classes de armazenamento padrão e inteligente s3fs.

Opções de montagem padrão da classe de armazenamento rclone

As classes de armazenamento rclone usam as seguintes opções de montagem padrão.

Opções padrão de montagem para as classes de armazenamento do complemento rclone do COS
Opção de montagem Descrição
acl=private Garante que os objetos carregados não sejam acessíveis publicamente.
bucket_acl=private Define a ACL padrão dos compartimentos que rclone cria para private.
upload_cutoff=100Mi Faz upload de arquivos maiores que 100 MiB usando upload de várias partes. Arquivos menores são carregados em uma única solicitação.
chunk_size=16Mi Define o tamanho de cada parte em um upload de várias partes.
max_upload_parts=1000 Define o número máximo de partes por upload de várias partes e, indiretamente, limita o tamanho máximo de arquivo suportado com o chunk_size configurado. Com chunk_size=16Mi, o tamanho máximo do arquivo é 16 GiB.
upload_concurrency=8 Define o número de partes que são carregadas em paralelo durante um upload de várias partes.