Configuração do driver “ IBM Cloud Object Storage ” para clusters “ Satellite ”

Saiba como implantar o driver IBM Cloud Object Storage em seus clusters do Satellite para criar e acessar dados em diversos provedores de armazenamento em nuvem S3-compatible, incluindo IBM, AWS, Wasabi e Azure.

Antes de implementar modelos de armazenamento em clusters no seu local, certifique-se de configurar o Satellite Config, selecionando a opção Enable cluster admin access for Satellite Config no console ou incluindo a opção --enable-config-admin ao criar o cluster.

Não é possível definir o escopo do serviço de armazenamento Satellite para grupos de recursos. No entanto, se estiver definindo o escopo de outros recursos, como local e cluster, para grupos de recursos, será necessário adicionar o leitor Satellite e vincular a função de administrador a todos os recursos da conta.

Pré-requisitos

  1. Crie um local do Satellite.

  2. Crie um conjunto de credenciais de serviço em seu provedor de armazenamento de objeto.

  3. Crie um segredo que contenha suas credenciais do s3.

Criando um segredo em seu cluster que contém suas credenciais de armazenamento de objeto

Crie o segredo Kubernetes em seu cluster que contém suas credenciais de serviço.

  1. Siga as etapas baseadas em seu provedor de armazenamento de objeto para criar um segredo em seu cluster. Ao criar seu segredo, todos os valores serão codificados automaticamente para base64. No exemplo a seguir, o nome do segredo é cos-write-access.

    • IBM Cloud Object Storage

      1. Encontre o ID da sua instância de serviço.

        ibmcloud resource service-instance <service_name> | grep GUID
        
      2. Crie o segredo em seu cluster.

        oc create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=api-key=API-KEY --from-literal=service-instance-id=SERVICE-INSTANCE-ID
        
    • AWS ou Wasabi

        oc create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=access-key=ACCESS-KEY-ID --from-literal=secret-key=SECRET-ACCESS-KEY
        ```
    
    
    
    
    

Criando e Afirmando uma Configuração no console

  1. Revise a referência de parâmetro.

  2. No console “Locais”, selecione o local onde você deseja criar uma configuração de armazenamento.

  3. Selecione Armazenamento > Criar configuração de armazenamento

  4. Insira um nome para a sua configuração.

  5. Selecione o tipo de armazenamento.

  6. Selecione a versão e clique em “Avançar”

  7. Se o Tipo de Armazenamento que você selecionou aceitar parâmetros personalizados, digite-os na guia Parâmetros.

  8. Se o Tipo de armazenamento que você selecionou requer segredos, insira-os na guia Secrets.

  9. Na guia Classes de armazenamento, revise as classes de armazenamento implementadas pela configuração ou crie uma classe de armazenamento customizada.

  10. Na guia Designar ao serviço, selecione o serviço ao qual você deseja designar a sua configuração.

  11. Clique em Concluído para designar sua configuração de armazenamento.

Criando uma Configuração no CLI

  1. Revise a referência de parâmetro para a versão do modelo que você deseja usar.

  2. Efetue login na CLI do IBM Cloud .

    ibmcloud login
    
  3. Liste seus locais do Satellite e observe a coluna Managed from.

    ibmcloud sat location ls
    
  4. Direcione a região Managed from do local do Satellite. Por exemplo, para wdc, direcione us-east. Para obter mais informações, consulte Regiões do Satellite.

    ibmcloud target -r us-east
    
  5. Se você usar um grupo de recursos diferente do default, direcione-o.

    ibmcloud target -g RESOURCE_GROUP
    
  6. Copie um do comando de exemplo a seguir para a versão de template que você deseja utilizar. Para obter mais informações sobre o comando, consulte ibmcloud sat storage config create na referência de comandos.

    Comando de exemplo para criar uma configuração da versão 2.2

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name ibm-object-storage-plugin --template-version 2.2 --param "helm-release-name=HELM-RELEASE-NAME"  --param "parameters=PARAMETERS"  --param "license=LICENSE"  --param "s3provider=S3PROVIDER"  --param "cos-storageclass=COS-STORAGECLASS"  --param "cos-endpoint=COS-ENDPOINT"
    
  7. Personalize o comando com base nas configurações que você deseja utilizar.

  8. Execute o comando para criar uma configuração.

  9. Verifique se sua configuração foi criada.

    ibmcloud sat storage config get --config CONFIG
    

Criando uma Configuração na API

  1. Gere uma chave API, então solicite um token de atualização. Para obter mais informações, consulte Gerando um token do IAM do IBM Cloud usando uma chave de API.

  2. Revise a referência de parâmetro para a versão do modelo que você deseja usar.

  3. Copie um dos seguintes pedidos de exemplo e substitua as variáveis que você deseja utilizar.

    Solicitação de exemplo para criar uma configuração da versão 2.2

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"ibm-object-storage-plugin\", \"storage-template-version\": \"2.2\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"HELM-RELEASE-NAME\", { \"entry.name\": \"PARAMETERS\", { \"entry.name\": \"LICENSE\", { \"entry.name\": \"S3PROVIDER\", { \"entry.name\": \"COS-STORAGECLASS\", { \"entry.name\": \"COS-ENDPOINT\",\"user-secret-parameters\": }
    

Criação de uma tarefa na interface de linha de comando (CLI)

  1. Liste suas configurações de armazenamento e anote a configuração de armazenamento que você deseja atribuir aos seus clusters.

    ibmcloud sat storage config ls
    
  2. Obtenha o ID do cluster, do grupo de clusters ou do serviço ao qual você deseja atribuir armazenamento.

    Para assegurar que seu cluster seja registrado com o Satellite Config ou para criar grupos, consulte Configurando clusters para uso com o Satellite Config.

    Exemplo de comando para listar grupos de clusters.

    ibmcloud sat group ls
    

    Exemplo de comando para listar clusters.

    ibmcloud oc cluster ls --provider satellite
    

    Comando exemplo para lista Satellite serviços.

    ibmcloud sat service ls --location LOCATION
    
  3. Atribua sua configuração de armazenamento para o cluster, grupo ou serviço que você recuperou anteriormente. Para obter mais informações, consulte o comando ibmcloud sat storage assignment create .

    Exemplo comando para atribuir uma configuração a um grupo de clusters.

    ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAME
    

    Comando exemplo para designar uma configuração a um cluster.

    ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAME
    

    Exemplo comando para designar uma configuração a um cluster de serviços.

    ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME
    
  4. Verifique se a sua designação foi criada.

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    

Criação de uma atribuição de armazenamento na interface de programação de aplicativos (API)

  1. Copie um dos seguintes pedidos de exemplo.

    Exemplo de solicitação para atribuir uma configuração a um cluster.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignmentByCluster" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"CLUSTER-ID\", \"controller\": \"LOCATION-ID\", \"name\": \"ASSIGNMENT-NAME\"}"
    

    Exemplo de solicitação para atribuir configuração a um grupo de clusters.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"string\", \"groups\": [ \"CLUSTER-GROUP\" ], \"name\": \"ASSIGNMENT-NAME\"}"
    
  2. Substitua as variáveis por seus detalhes e execute a solicitação.

  3. Verifique a atribuição foi criada listando suas designações.

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

Atualizando designações de armazenamento no console

É possível usar o console do Satellite console para aplicar as atualizações de correção mais recentes às designações.

  1. Na página Locais no console do Satellite, selecione seu local.

  2. Clique na guia Armazenamento para visualizar suas configurações..

  3. Clique na configuração que deseja atualizar.

  4. Clique no ícone Informações (i) para aplicar a revisão ou correção mais recente.

  5. Opcional: ative as atualizações de correção automática para sua designação de armazenamento. A ativação de atualizações de correção automáticas assegura que sua designação sempre tenha as correções de segurança mais recentes

Se você ativar atualizações de correção automáticas, ainda deverá aplicar as principais atualizações manualmente.

Fazendo upgrade manualmente de designações na CLI

Faça upgrade de uma designação para usar a revisão do modelo de armazenamento mais recente

  1. Liste as suas designações de armazenamento do Satellite, anote a designação do Satellite da qual você deseja fazer upgrade.

    ibmcloud sat storage assignment ls
    
  2. Liste os modelos de armazenamento do Satellite para ver as versões mais recentes disponíveis.

    ibmcloud sat storage template ls
    
  3. Faça upgrade da designação do Satellite.

    Exemplo de comando para atualizar uma designação.

    ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
    

Ativando atualizações de correção automáticas para configurações e designações na CLI

É possível usar a CLI do sat storage assignment autopatch enable para ativar as atualizações de correção automáticas para suas designações A ativação de atualizações de correção automática aplica as revisões mais recentes do modelo de armazenamento (correções) automaticamente. Você ainda deve aplicar atualizações principais manualmente.

  1. Liste suas configurações de armazenamento do Satellite. Anote o ID da configuração.

    ibmcloud sat storage assignment ls
    
  2. Execute um dos comandos de exemplo a seguir para ativar atualizações de correção automáticas para sua configuração e suas designações associadas. Digite o ID de configuração que você obteve na etapa anterior.

    Comando de exemplo para ativar atualizações de correção automática para uma designação.

    ibmcloud sat storage assignment autopatch enable --config CONFIG  (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])
    

    Comando de exemplo para ativar atualizações de correção automática para todas as designações de armazenamento sob uma determinada configuração.

    ibmcloud sat storage assignment autopatch enable --config CONFIG --all
    

    Exemplo de comando para desativar as atualizações de correção automáticas para todas as designações sob uma configuração específica

    ibmcloud sat storage assignment autopatch disable --config CONFIG --all
    

    Exemplo de comando para desativar as atualizações de correção automáticas para uma única designação e uma configuração específica

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID
    

    Exemplo de comando para desativar as atualizações de correção automáticas para uma designação múltipla e uma configuração específica

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
    

Fazendo upgrade de uma configuração e designações na API

É possível usar a API do /v2/storage/satellite/updateAssignment para atualizar suas designações com novos clusters ou grupos de clusters Configure updateConfigVersion como true para aplicar a atualização de revisão

  1. Copie a seguinte solicitação de exemplo e substitua as variáveis para os grupos de clusters e designações que você deseja atualizar.

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/updateAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"groups\": [ \"CLUSTER-GROUPS\" ], \"name\": \"ASSIGNMENT-NAME\", \"updateConfigVersion\": true, \"uuid\": \"ASSIGNMENT-ID\"}"
    
  2. Execute o pedido.

  3. Obtenha os detalhes de você atribuição para verificar a atualização.

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

Ativando atualizações de correção automáticas para designações na API

É possível usar a API /v2/storage/satellite/setAssignmentAutoupgrade para ativar atualizações de correção automáticas para suas designações. A ativação de atualizações de correção automática aplica as revisões mais recentes do modelo de armazenamento (correções) automaticamente. Você ainda deve aplicar atualizações principais manualmente.

  1. Copie a seguinte solicitação de exemplo e substitua as variáveis para os grupos de clusters e designações que você deseja atualizar.

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/setAssignmentAutoupgrade" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d { "config": "string", "controller": "string", "autopatch": boolean,"assignment" : { "all": boolean, "uuid": ["string", "string", ...], } }
    
  2. Execute o pedido.

  3. Obtenha os detalhes de sua designação para verificar o upgrade

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

Implantar um aplicativo que utiliza IBM Cloud Object Storage

Você pode usar o driver “ ibm-object-s3fs ” para criar PVCs que poderão ser utilizados nas cargas de trabalho do seu cluster.

  1. Crie um PVC que referencie sua configuração de armazenamento de objetos.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: demo #Enter a name for your PVC.
      namespace: default
      annotations:
      ibm.io/auto-create-bucket: "false"
      ibm.io/auto-delete-bucket: "false"
      ibm.io/bucket: BUCKET-NAME #Enter the name of your object storage bucket.
      ibm.io/secret-name: SECRET-NAME #Enter the name of the secret you created earlier.
      ibm.io/secret-namespace: NAMESPACE #Enter the namespace where you want to create the PVC.
    spec:
        accessModes:
        - ReadWriteOnce
        resources:
            requests:
                storage: 10Gi
        storageClassName: ibmc-s3fs-cos #The storage class that you want to use.
    
  2. Crie o PVC em seu cluster.

    oc apply -f pvc-cos.yaml
    
  3. Crie um arquivo de configuração YAML para um pod que monte o PVC que você criar.

    apiVersion: v1
    kind: Pod
    metadata:
      name: demo-pod
      namespace: default
    spec:
      securityContext:
        runAsUser: 2000
        fsGroup: 2000
      volumes:
      - name: demo-vol
        persistentVolumeClaim:
            claimName: demo
      containers:
      - name: test
        image: nginxinc/nginx-unprivileged
        imagePullPolicy: Always
        volumeMounts:
        - name: demo-vol
          mountPath: /mnt/cosvol
    
  4. Crie o pod em seu cluster.

    oc apply -f demo-pod.yaml
    
  5. Verifique se o pod foi implementado. Observe que pode levar alguns minutos para que seu aplicativo entre no estado “ Running ”.

    oc get pods
    
    NAME                                READY   STATUS    RESTARTS   AGE
    demo-pod                            1/1     Running   0          2m58s
    
  6. Verifique se o app pode gravar em seu volume de armazenamento de blocos efetuando login em seu pod.

    oc exec demo-pod -- bash -c "touch /mnt/cosvol/test.txt && ls /mnt/cosvol" test.txt
    

Removendo a configuração de armazenamento do IBM Cloud Object Storage usando o console

  1. No painel de armazenamento do Satellite, selecione a configuração de armazenamento que você deseja excluir.
  2. Selecione Ações > Excluir
  3. Insira o nome da sua configuração de armazenamento.
  4. Selecione ** Excluir **.

Como remover a configuração de armazenamento IBM Cloud Object Storage usando a linha de comando

Se você não precisar mais da sua configuração do IBM Cloud Object Storage, poderá remover seus aplicativos, PVCs, PVs e atribuições dos seus clusters.

  1. Liste suas designações de armazenamento e localize aquela que você usou para o seu cluster.

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    
  2. Remova a designação. Após a remoção da designação, os pods do driver e as classes de armazenamento são removidos de todos os clusters que faziam parte da designação de armazenamento.

    ibmcloud sat storage assignment rm --assignment <assignment_ID>
    
  3. Verifique se o driver foi removido de seu cluster.

    1. Liste as classes de armazenamento em seu cluster e verifique se elas foram removidas.
        oc get sc
        ```
    1. Liste os pods no namespace `kube-system` e verifique se os pods do driver de armazenamento foram removidos.
    
    ```sh {: pre}
        oc get pods -n kube-system | grep cos
        ```
    
  4. Opcional: remova a configuração de armazenamento.

    1. Liste as configurações de armazenamento.
        ibmcloud sat storage config ls
        ```
    1. Remova a configuração de armazenamento.
    
    ```sh {: pre}
        ibmcloud sat storage config rm --config <config_name>
        ```
    
    

Referência de parâmetro

Referência de parâmetro 2.2

Tabela 1. 2.2 referência de parâmetro
Nome de exibição Opção CLI Tipo Descrição Valor Padrão
Nome da liberação helm-release-name Configuração O nome da liberação do Helm Chart. ibm-object-storage-plugin
Parâmetros adicionais do Helm Chart parameters Configuração Os parâmetros adicionais do Helm Chart. N/A
Licença do plug-in Object Storage license Configuração Licença do plug-in de armazenamento de objeto: licença Apache versão 2.0. Configure como 'true' para aceitar a licença e instalar o plug-in. N/A
Provedor do Object Storage s3provider Configuração Os provedores disponíveis são 'IBM', 'AWS' e 'Wasabi'. Para provedores diferentes desses, deve-se fornecer o parâmetro 'Object Storage service endpoint' N/A
Região do Object Storage cos-storageclass Configuração Insira a região na qual seu armazenamento de objeto está localizado. Para obter informações sobre as regiões do IBM COS, consulte https://ibm.biz/cos-endpoints-list. Para o Wasabi, consulte https://ibm.biz/wasabi-endpoints. Para o AWS, consulte https://ibm.biz/aws-endpoints. N/A
Terminal do serviço Object Storage cos-endpoint Configuração Terminal do serviço Object Storage. É necessário ao usar provedores Object Storage diferentes de IBM, AWS ou Wasabi. A preferência será dada ao parâmetro 'Object Storage provider', quando ambos estiverem configurados. N/A

Referência de classe de armazenamento para IBM Cloud Object Storage

Referência de classe de armazenamento de objetos na nuvem
Nome da classe de armazenamento Modo de ligação de volume Reter
ibm-s3fs-cos Imediato Não
ibm-s3fs-cos-perf Imediato Não

Obtendo ajuda e suporte para o IBM Cloud Object Storage

Quando você usar o site IBM Cloud Object Storage, tente os seguintes recursos antes de abrir um caso de suporte.

  1. Revise as perguntas frequentes no Documentos do Block Storage for VPC.
  2. Revise a documentação de resolução de problemas para resolver problemas comuns.
  3. Verifique o status da plataforma e dos recursos do IBM Cloud acessando a página de status.
  4. Revise Estouro de Pilha para ver se outros usuários tiveram o mesmo problema Marque quaisquer perguntas com ibm-cloud e COS.
  5. Se você tiver um problema com o Block Storage for VPC, envie uma solicitação de suporte com o IBM Cloud® Support.