Driver CSI ( VMware Block Container Storage Interface )
Il driver VMware Container Storage Interface (CSI) consente di gestire il ciclo di vita dei volumi VMware Block Data.
Prerequisiti
Prima di creare una configurazione dell'archiviazione blocchi VMware, devi soddisfare i seguenti requisiti.
- Verifica di eseguire vSphere versione 6.7U3 o successiva.
- Verificare che la versione hardware della macchina virtuale sia la versione 15 o successiva.
- Verifica che i nodi master possano comunicare con l'interfaccia di gestione vCenter.
- Disabilita Swap su tutti i nodi.
- Abilitare UUID disco su tutte le macchine virtuali del nodo.
- Distribuisci vSAN nel tuo ambiente vSphere. Per ulteriori informazioni, vedi la documentazione divSAN.
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.
Creazione e assegnazione di una configurazione nella console
-
Esaminare il riferimento del parametro.
-
Dalla console Ubicazioni, selezionare l'ubicazione in cui si desidera creare una configurazione di memoria.
-
Selezionare Memoria > Crea configurazione memoria
-
Inserisci un nome per la tua configurazione.
-
Selezionare il tipo di archiviazione.
-
Selezionare Versione e fare clic su Avanti
-
Se il Tipo di archiviazione selezionato accetta parametri personalizzati, immetterli nella scheda Parametri.
-
Se il Tipo di archiviazione selezionato richiede segreti, immetterli nella scheda Segreti.
-
Sulla scheda Classi di archiviazione, esaminare le classi di memoria distribuite dalla configurazione o creare una classe di memoria personalizzata.
-
Nella scheda Assegna al servizio, selezionare il servizio a cui si desidera assegnare la configurazione.
-
Fare clic su Completa per assegnare la configurazione di archiviazione.
Creazione di una configurazione nella CLI
-
Esaminare il riferimento parametro per la versione del template che si desidera utilizzare.
-
Accedi alla CLI IBM Cloud.
ibmcloud login -
Elenca le tue ubicazioni Satellite e prendi nota della colonna
Managed from.ibmcloud sat location ls -
Specifica la regione
Managed fromdella tua ubicazione Satellite. Ad esempio, perwdctargetus-east. Per ulteriori informazioni, vedi RegioniSatellite.ibmcloud target -r us-east -
Se si utilizza un gruppo di risorse diverso da
default, destinarlo.ibmcloud target -g RESOURCE_GROUP -
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 createnel riferimento al comando .Comando di esempio per creare una configurazione della versione 2.7.0.
ibmcloud sat storage config create --location LOCATION --name NAME --template-name vsphere-csi-driver --template-version 2.7.0 --param "vcenter-username=VCENTER-USERNAME" --param "vcenter-password=VCENTER-PASSWORD" --param "insecure-flag=INSECURE-FLAG" --param "host=HOST" --param "datacenters=DATACENTERS" --param "thumbprint=THUMBPRINT" -
Personalizzare il comando in base alle impostazioni che si desidera utilizzare.
-
Esegui il comando per creare una configurazione.
-
Verificare che la configurazione sia stata creata.
ibmcloud sat storage config get --config CONFIG
Creazione di una configurazione nell'API
-
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 ".
-
Esaminare il riferimento parametro per la versione del template che si desidera utilizzare.
-
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.7.0.
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\": \"vsphere-csi-driver\", \"storage-template-version\": \"2.7.0\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"INSECURE-FLAG\", { \"entry.name\": \"HOST\", { \"entry.name\": \"DATACENTERS\",\"user-secret-parameters\": { \"entry.name\": \"VCENTER-USERNAME\",{ \"entry.name\": \"VCENTER-PASSWORD\",{ \"entry.name\": \"THUMBPRINT\",}
Creazione di un'attività nella CLI
-
Elencare le configurazioni di archiviazione e prendere nota della configurazione di archiviazione che si desidera assegnare ai cluster.
ibmcloud sat storage config ls -
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 lsComando di esempio per elencare i cluster.
ibmcloud oc cluster ls --provider satelliteComando di esempio per elencare i servizi Satellite.
ibmcloud sat service ls --location LOCATION -
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 NAMEComando di esempio per assegnare una configurazione a un cluster.
ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAMEComando di esempio per assegnare una configurazione a un cluster di servizio.
ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME -
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
-
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\"}" -
Sostituire le variabili con i propri dettagli ed eseguire la richiesta.
-
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.
-
Dalla pagina Ubicazioni della consoleSatellite, seleziona la tua ubicazione.
-
Fare clic sulla scheda Archiviazione per visualizzare le configurazioni.
-
Fai clic sulla configurazione che desideri aggiornare.
-
Fare clic sull'icona Informazioni (i) per applicare l'ultima revisione o patch.
-
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.
-
Elenca le tue assegnazioni di memoria Satellite, prendi nota dell'assegnazione Satellite che vuoi aggiornare.
ibmcloud sat storage assignment ls -
Elencare i modelli di memorizzazione Satellite per vedere le ultime versioni disponibili.
ibmcloud sat storage template ls -
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.
-
Elenca le configurazioni di archiviazione Satellite. Prendere nota dell'ID configurazione.
ibmcloud sat storage assignment ls -
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 --allComando di esempio per disabilitare gli aggiornamenti patch automatici per tutte le assegnazioni in una configurazione specifica.
ibmcloud sat storage assignment autopatch disable --config CONFIG --allComando 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-IDComando 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.
-
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\"}" -
Eseguire la richiesta.
-
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.
-
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", ...], } } -
Eseguire la richiesta.
-
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 VMware
Puoi utilizzare vmware-csi-driver per creare PVC che puoi utilizzare nei tuoi carichi di lavoro del cluster.
-
Crea una PVC che fa riferimento alla classe di archiviazione che hai creato precedentemente.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: podpvc spec: accessModes: - ReadWriteOnce storageClassName: sat-vsphere-vsan-block-metro resources: requests: storage: 10Gi -
Crea la PVC nel tuo cluster.
oc apply -f podpvc.yaml -
Crea un file di configurazione YAML per un pod che monti il PVC che hai creato.
apiVersion: v1 kind: Pod metadata: name: web-server spec: containers: - name: #web-server image: nginx command: - "/bin/sh" - "-c" - while true; do echo $(date) >> /mnt/vmwaredisk/outfile; sleep 1; done volumeMounts: mountPath: /mnt/vmwaredisk name: mypvc volumes: - name: mypvc persistentVolumeClaim: claimName: podpvc readOnly: false -
Crea il pod nel tuo cluster.
oc apply -f mypvc.yaml -
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 podsNAME READY STATUS RESTARTS AGE my-pvc 1/1 Running 0 2m58s -
Verifica che l'applicazione possa scrivere nel volume di archiviazione blocchi accedendo al tuo pod.
oc exec -it web-server /bin/bash -
Visualizza il contenuto del file
outfileper confermare che l'applicazione può scrivere i dati nella tua archiviazione persistente.cat outfileOutput di esempio
Fri Jul 16 07:49:39 EDT 2021 Fri Jul 16 07:49:39 EDT 2021 Fri Jul 16 07:49:39 EDT 2021 -
Esci dal pod.
exit
Rimozione dell'archiviazione VMWare dalle app
Se la configurazione di VMware non è più necessaria, è possibile rimuovere le applicazioni, i PVC, i PV e l'assegnazione dai cluster.
-
Elenca le tue PVC e prendi nota del nome della PVC che vuoi rimuovere.
oc get pvc -
Rimuovi gli eventuali pod che montano la PVC.
- Elenca tutti i pod che attualmente montano la PVC che vuoi eliminare. Se non viene restituito alcun pod, non hai alcun pod che attualmente utilizza la tua PVC.
oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>" ``` Output di esempio ```sh {: screen} NAME READY STATUS RESTARTS AGE web-server 1/1 Running 0 55s ``` 1. Rimuovi il pod che utilizza la PVC. Se il pod fa parte di una distribuzione o statefulset, rimuovi la distribuzione o statefulset. ```sh {: pre} oc delete pod <pod_name> ``` ```sh {: pre} oc delete deployment <deployment_name> ``` ```sh {: pre} oc delete statefulset <statefulset_name> ``` 1. Verifica che il pod, la distribuzione o lo statefulset sia stato rimosso. ```sh {: pre} oc get pods ``` ```sh {: pre} oc get deployments ``` ```sh {: pre} oc get statefulset ``` -
Elimina la PVC.
oc delete pvc <pvc_name> -
Verifica che il tuo PV venga rimosso automaticamente.
oc get pv
Rimozione della configurazione di archiviazione VMware dal tuo cluster
Se non si intende più utilizzare VMware nel cluster, è possibile utilizzare la CLI per disassegnare il cluster dalla configurazione dello storage.
La rimozione della configurazione di archiviazione rimuove il driver da tutti i cluster assegnati. Le PVC, i PV e i dati non vengono rimossi. Tuttavia, non potrai accedere ai tuoi dati finché non avrai reinstallato il driver nel tuo cluster.
Rimozione della configurazione dell'archiviazione VMWare utilizzando la console
- Dal dashboard di archiviazione Satellite, seleziona la configurazione di archiviazione che vuoi eliminare.
- Selezionare Azioni > Elimina
- Immettere il nome della configurazione di archiviazione.
- Seleziona Delete.
Rimozione della configurazione della memoria VMWare utilizzando la riga comandi
-
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) -
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> -
Verificare che il programma di controllo sia stato rimosso dal cluster.
- Elenco delle classi di archiviazione nel cluster e verifica che le classi di archiviazione siano rimosse.
oc get sc ``` 2. 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 vsphere ``` -
Facoltativo: rimuovere la configurazione di archiviazione.
- Elencare le configurazioni di memoria.
ibmcloud sat storage config ls ``` 2. Rimuovere la configurazione della memoria. ```sh {: pre} ibmcloud sat storage config rm --config <config_name> ```
Riferimento parametro
Riferimento ai parametri 2.7.0
| Nome di visualizzazione | opzione CLI | Immettere | Descrizione | Valore predefinito |
|---|---|---|---|---|
| Nome utente vCenter | vcenter-username |
Secret | Il nome utente vCenter. È necessario specificare il nome utente insieme al nome dominio. Ad esempio: 'Administrator@vsphere.local'. | N/D |
| Password vCenter | vcenter-password |
Secret | La password utente del server vCenter. | N/D |
| Connessione non sicura | insecure-flag |
Config | Includere il flag "insecure-flag". true" indica che si vuole includere il flag, che utilizza un certificato autofirmato per il login. 'false' indica che si utilizza una connessione sicura. Se si seleziona 'false', è necessario fornire un'impronta digitale SSL. | false |
| Host vCenter | host |
Config | L'indirizzo IP del server vCenter. | N/D |
| Data center vCenter | datacenters |
Config | Elencare tutti i percorsi del centro dati in cui sono presenti le VM host, separati da virgole. Fornire il nome del centro dati quando si trova nella root. Quando viene posizionato nella cartella, è necessario specificare il percorso come cartella/nome-centro-dati | N/D |
| Impronta digitale del certificato SSL | thumbprint |
Secret | L'impronta digitale SSL da utilizzare per stabilire una connessione sicura a VC. | N/D |
Come ottenere assistenza e supporto per VMware
Se riscontri un problema con VMware, invia una richiesta di supporto con VMware Support.