Configurazione del driver " IBM Cloud Object Storage " per i cluster " Satellite "

Scopri come distribuire il driver IBM Cloud Object Storage sui tuoi cluster Satellite per creare e accedere ai dati su più fornitori di servizi di archiviazione cloud S3-compatible, tra cui IBM, AWS, Wasabi e Azure.

Prima di poter distribuire i modelli di storage ai cluster della propria sede, assicurarsi di aver configurato Satellite Config selezionando l'opzione Abilita l'accesso dell'amministratore del cluster per Satellite Config nella console o includendo l'opzione --enable-config-admin durante la creazione del cluster.

Non è possibile assegnare il servizio di archiviazione Satellite ai gruppi di risorse. Tuttavia, se si stanno assegnando altre risorse, come la posizione e il cluster, ai gruppi di risorse, è necessario aggiungere il ruolo di lettore di Satellite e di amministratore dei collegamenti per tutte le risorse dell'account.

Prerequisiti

  1. Crea un'ubicazione Satellite.

  2. Creare una serie di credenziali del servizio nel provider di archiviazione oggetti.

  3. Crea un segreto che contenga le tue credenziali s3.

Creazione di un segreto nel tuo cluster che contiene le tue credenziali di archiviazione oggetti

Crea il segreto Kubernetes nel tuo cluster che contiene le tue credenziali del servizio.

  1. Seguire la procedura basata sul provider di archiviazione oggetti per creare un segreto nel cluster. Quando crei il tuo segreto, tutti i valori vengono automaticamente codificati in base64. Nell'esempio seguente, il nome del segreto è cos-write-access.

    • IBM Cloud Object Storage

      1. Individua l'ID della tua istanza di servizio.

        ibmcloud resource service-instance <service_name> | grep GUID
        
      2. Crea il segreto nel tuo 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 o 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
        ```
    
    
    
    
    

Creazione e assegnazione di una configurazione nella console

  1. Esaminare il riferimento del parametro.

  2. Dalla console Ubicazioni, selezionare l'ubicazione in cui si desidera creare una configurazione di memoria.

  3. Selezionare Memoria > Crea configurazione memoria

  4. Inserisci un nome per la tua configurazione.

  5. Selezionare il tipo di archiviazione.

  6. Selezionare Versione e fare clic su Avanti

  7. Se il Tipo di archiviazione selezionato accetta parametri personalizzati, immetterli nella scheda Parametri.

  8. Se il Tipo di archiviazione selezionato richiede segreti, immetterli nella scheda Segreti.

  9. Sulla scheda Classi di archiviazione, esaminare le classi di memoria distribuite dalla configurazione o creare una classe di memoria personalizzata.

  10. Nella scheda Assegna al servizio, selezionare il servizio a cui si desidera assegnare la configurazione.

  11. Fare clic su Completa per assegnare la configurazione di archiviazione.

Creazione di una configurazione nella CLI

  1. Esaminare il riferimento parametro per la versione del template che si desidera utilizzare.

  2. Accedi alla CLI IBM Cloud.

    ibmcloud login
    
  3. Elenca le tue ubicazioni Satellite e prendi nota della colonna Managed from.

    ibmcloud sat location ls
    
  4. Specifica la regione Managed from della tua ubicazione Satellite. Ad esempio, per wdc target us-east. Per ulteriori informazioni, vedi RegioniSatellite.

    ibmcloud target -r us-east
    
  5. Se si utilizza un gruppo di risorse diverso da default, destinarlo.

    ibmcloud target -g RESOURCE_GROUP
    
  6. Copiare uno dei seguenti comandi di esempio per la versione del modello che si desidera utilizzare. Per ulteriori informazioni sul comando, consultare ibmcloud sat storage config create nel riferimento al comando .

    Comando di esempio per creare una configurazione della versione 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. Personalizzare il comando in base alle impostazioni che si desidera utilizzare.

  8. Esegui il comando per creare una configurazione.

  9. Verificare che la configurazione sia stata creata.

    ibmcloud sat storage config get --config CONFIG
    

Creazione di una configurazione nell'API

  1. Generare una chiave API, quindi richiedere un token di aggiornamento. Per ulteriori informazioni, consultare la sezione " Generazione di un token IAM di IBM Cloud utilizzando una chiave API ".

  2. Esaminare il riferimento parametro per la versione del template che si desidera utilizzare.

  3. Copiare una delle seguenti richieste di esempio e sostituire le variabili che si desidera utilizzare.

    Richiesta di esempio per creare una configurazione della versione 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\": }
    

Creazione di un'attività nella CLI

  1. Elencare le configurazioni di archiviazione e prendere nota della configurazione di archiviazione che si desidera assegnare ai cluster.

    ibmcloud sat storage config ls
    
  2. Ottieni l'ID del cluster, del gruppo di cluster o del servizio a cui vuoi assegnare l'archiviazione.

    Per assicurarti che il tuo cluster sia registrato in Satellite Config o per creare gruppi, consulta Configurazione dei cluster da utilizzare con il file di configurazione di Satellite.

    Comando di esempio per elencare i gruppi di cluster.

    ibmcloud sat group ls
    

    Comando di esempio per elencare i cluster.

    ibmcloud oc cluster ls --provider satellite
    

    Comando di esempio per elencare i servizi Satellite.

    ibmcloud sat service ls --location LOCATION
    
  3. Assegna la tua configurazione di archiviazione al cluster, gruppo o servizio che hai richiamato in precedenza. Per ulteriori informazioni, consultare il comando ibmcloud sat storage assignment create .

    Comando di esempio per assegnare una configurazione a un gruppo di cluster.

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

    Comando di esempio per assegnare una configurazione a un cluster.

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

    Comando di esempio per assegnare una configurazione a un cluster di servizio.

    ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME
    
  4. Verifica che il tuo compito sia stato creato.

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

Creazione di un'assegnazione di memoria nell'API

  1. Copiare una delle seguenti richieste di esempio.

    Richiesta di esempio per assegnare una configurazione a un 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\"}"
    

    Richiesta di esempio per assegnare la configurazione a un gruppo di cluster.

    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. Sostituire le variabili con i propri dettagli ed eseguire la richiesta.

  3. Verificare che l'assegnazione sia stata creata elencando le assegnazioni.

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

Aggiornamento delle assegnazioni di memoria nella console

Puoi utilizzare la consoleSatellite per applicare gli ultimi aggiornamenti di patch alle tue assegnazioni.

  1. Dalla pagina Ubicazioni della consoleSatellite, seleziona la tua ubicazione.

  2. Fare clic sulla scheda Archiviazione per visualizzare le configurazioni.

  3. Fai clic sulla configurazione che desideri aggiornare.

  4. Fare clic sull'icona Informazioni (i) per applicare l'ultima revisione o patch.

  5. Facoltativo: abilita gli aggiornamenti patch automatici per l'assegnazione della tua archiviazione. L'abilitazione degli aggiornamenti automatici delle patch garantisce che l'assegnazione abbia sempre le correzioni di sicurezza più recenti.

Se si abilitano gli aggiornamenti patch automatici, è comunque necessario applicare manualmente gli aggiornamenti principali.

Aggiornamento manuale delle assegnazioni nella CLI

Aggiornare un'assegnazione per utilizzare l'ultima revisione del modello di memoria.

  1. Elenca le tue assegnazioni di memoria Satellite, prendi nota dell'assegnazione Satellite che vuoi aggiornare.

    ibmcloud sat storage assignment ls
    
  2. Elencare i modelli di memorizzazione Satellite per vedere le ultime versioni disponibili.

    ibmcloud sat storage template ls
    
  3. Aggiorna l'assegnazione Satellite.

    Comando di esempio per aggiornare un'assegnazione.

    ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
    

Abilitazione degli aggiornamenti patch automatici per le configurazioni e le assegnazioni nella CLI

Puoi utilizzare la CLI sat storage assignment autopatch enable per abilitare gli aggiornamenti patch automatici per le tue assegnazioni. L'abilitazione degli aggiornamenti automatici delle patch applica automaticamente le ultime revisioni del modello di memoria (patch). È comunque necessario applicare manualmente gli aggiornamenti principali.

  1. Elenca le configurazioni di archiviazione Satellite. Prendere nota dell'ID configurazione.

    ibmcloud sat storage assignment ls
    
  2. Eseguire uno dei seguenti comandi di esempio per abilitare gli aggiornamenti automatici delle patch per la configurazione e le assegnazioni associate. Inserisci l'ID di configurazione che hai recuperato nel passaggio precedente.

    Comando di esempio per abilitare gli aggiornamenti automatici delle correzioni per un'assegnazione.

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

    Comando di esempio per abilitare gli aggiornamenti di patch automatici per tutte le assegnazioni di memoria in una determinata configurazione.

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

    Comando di esempio per disabilitare gli aggiornamenti patch automatici per tutte le assegnazioni in una configurazione specifica.

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

    Comando di esempio per disabilitare gli aggiornamenti patch automatici per una singola assegnazione e una specifica configurazione.

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

    Comando di esempio per disattivare gli aggiornamenti automatici delle patch per un'assegnazione multipla e una specifica configurazione.

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

Aggiornamento di configurazione e assegnazioni nell'API

È possibile utilizzare l'API /v2/storage/satellite/updateAssignment per aggiornare le assegnazioni con nuovi cluster o gruppi di cluster. Impostare updateConfigVersion su true per applicare l'aggiornamento della revisione.

  1. Copiare la seguente richiesta di esempio e sostituire le variabili per i gruppi di cluster e le assegnazioni che si desidera aggiornare.

    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. Eseguire la richiesta.

  3. Ottenere i dettagli dell'assegnazione per verificare l'aggiornamento.

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

Abilitazione degli aggiornamenti patch automatici per le assegnazioni nell'API

È possibile utilizzare l'API /v2/storage/satellite/setAssignmentAutoupgrade per abilitare gli aggiornamenti patch automatici per le proprie assegnazioni. L'abilitazione degli aggiornamenti automatici delle patch applica automaticamente le ultime revisioni del modello di memoria (patch). È comunque necessario applicare manualmente gli aggiornamenti principali.

  1. Copiare la seguente richiesta di esempio e sostituire le variabili per i gruppi di cluster e le assegnazioni che si desidera aggiornare.

    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. Eseguire la richiesta.

  3. Ottieni i dettagli dell'assegnazione per verificare l'aggiornamento.

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

Distribuzione di un'applicazione che utilizza IBM Cloud Object Storage

Puoi utilizzare il driver ibm-object-s3fs per creare le PVC che puoi utilizzare nei tuoi workload del cluster.

  1. Crea una PVC che fa riferimento alla configurazione dell'archiviazione oggetti.

    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. Crea la PVC nel tuo cluster.

    oc apply -f pvc-cos.yaml
    
  3. Crea un file di configurazione YAML per un pod che monta la PVC che crei.

    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. Crea il pod nel tuo cluster.

    oc apply -f demo-pod.yaml
    
  5. Verificare che il pod sia stato distribuito. Si noti che potrebbero essere necessari alcuni minuti prima che l'app entri nello stato " Running ".

    oc get pods
    
    NAME                                READY   STATUS    RESTARTS   AGE
    demo-pod                            1/1     Running   0          2m58s
    
  6. Verifica che l'applicazione possa scrivere nel volume di archiviazione blocchi accedendo al tuo pod.

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

Rimozione della configurazione di archiviazione IBM Cloud Object Storage utilizzando la console

  1. Dal dashboard di archiviazione Satellite, seleziona la configurazione di archiviazione che vuoi eliminare.
  2. Selezionare Azioni > Elimina
  3. Immettere il nome della configurazione di archiviazione.
  4. Seleziona Delete.

Rimozione della configurazione di archiviazione di IBM Cloud Object Storage utilizzando la riga di comando

Se la configurazione di IBM Cloud Object Storage non è più necessaria, è possibile rimuovere le applicazioni, i PVC, i PV e l'assegnazione dai cluster.

  1. Elenca le assegnazioni di archiviazione e trova quella che hai utilizzato per il cluster.

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    
  2. Rimuovere l'assegnazione. Una volta rimossa l'assegnazione, i pod del driver e le classi di archiviazione vengono rimossi da tutti i cluster che facevano parte dell'assegnazione di archiviazione.

    ibmcloud sat storage assignment rm --assignment <assignment_ID>
    
  3. Verificare che il programma di controllo sia stato rimosso dal cluster.

    1. Elenco delle classi di archiviazione nel cluster e verifica che le classi di archiviazione siano rimosse.
        oc get sc
        ```
    1. Elenca i pod nello spazio dei nomi `kube-system` e verifica che i pod del driver di archiviazione siano rimossi.
    
    ```sh {: pre}
        oc get pods -n kube-system | grep cos
        ```
    
  4. Facoltativo: rimuovere la configurazione di archiviazione.

    1. Elencare le configurazioni di memoria.
        ibmcloud sat storage config ls
        ```
    1. Rimuovere la configurazione della memoria.
    
    ```sh {: pre}
        ibmcloud sat storage config rm --config <config_name>
        ```
    
    

Riferimento parametro

Riferimento ai parametri 2.2

Tabella 1. Riferimento dei parametri di 2.2
Nome di visualizzazione opzione CLI Immettere Descrizione Valore predefinito
Nome release helm-release-name Config Nome della release del grafico Helm. ibm-object-storage-plugin
Parametri aggiuntivi del diagramma Helm parameters Config Parametri aggiuntivi del diagramma Helm. N/D
Licenza plug-in Object Storage license Config Licenza plug-in di archivio oggetti: licenza Apache versione 2.0. Impostare su 'true' per accettare la licenza e installare il plug-in. N/D
Provider Object Storage s3provider Config I provider disponibili sono 'IBM', 'AWS' e 'Wasabi'. Per provider diversi da questi, è necessario fornire il parametro 'Endpoint del servizio Object Storage'. N/D
Regione Object Storage cos-storageclass Config Immettere la regione in cui si trova l'archivio oggetti. Per le regioni IBM COS, consultare https://ibm.biz/cos-endpoints-list. Per Wasabi, consultare https://ibm.biz/wasabi-endpoints. Per AWS, consultare https://ibm.biz/aws-endpoints. N/D
Endpoint del servizio Object Storage cos-endpoint Config Endpoint del servizio Object Storage. Richiesto quando si utilizzano provider Object Storage diversi da IBM, AWS o Wasabi. La preferenza viene data al provider 'Object Storage' quando sono impostati entrambi. N/D

Riferimento alla classe di archiviazione per IBM Cloud Object Storage

Riferimento alla classe di archiviazione Cloud Object
Nome classe di archiviazione Modalità di collegamento volume Conserva
ibm-s3fs-cos Immediato False
ibm-s3fs-cos-perf Immediato False

Come ottenere aiuto e supporto per IBM Cloud Object Storage

Quando si utilizza IBM Cloud Object Storage, provare le seguenti risorse prima di aprire un caso di assistenza.

  1. Esamina le FAQ nella documentazione Block Storage for VPC.
  2. Consultare la documentazione per la risoluzione dei problemi per risolvere i problemi comuni.
  3. Controlla lo stato della piattaforma e delle risorse IBM Cloud andando alla pagina Stato.
  4. Esamina Stack Overflow per vedere se altri utenti hanno riscontrato lo stesso problema. Contrassegna con tag eventuali domande con ibm-cloud e COS.
  5. Se riscontri un problema con Block Storage for VPC, invia una richiesta di supporto con il supporto IBM Cloud®.