Perché i pod di Data Foundation di OpenShift rimangono bloccati alla pagina Pending?
Quando si elencano i pod nel namespace openshift-storage, i pod di OpenShift Data Foundation rimangono bloccati allo stato " Pending ".
Quando si esegue il comando oc get pods -n openshift-storage``, i pod di OpenShift Data Foundation mostrano lo stato “ Pending ”.
Per capire perché i pod del tuo cluster di storage sono bloccati allo stato " Pending", descrivi i pod che presentano lo stato " Pending ".
oc describe pod <pod> -n openshift-storage
Nell'output, controllare la sezione Events per il seguente errore:
"Error: 0/3 nodes are available: 1 node(s) didn't match pod affinity/anti-affinity, 2 node(s) had volume node affinity conflict"
Questo errore indica che il cluster classico o VPC in cui è installato il cluster di archiviazione di OpenShift Data Foundation è un cluster multizona, ma le classi di archiviazione specificate nei campi " monStorageClassName " o " osdStorageClassName " presentano il parametro " VolumeBindingMode " impostato su " Immediate".
Il parametro VolumeBindingMode determina quando avvengono il binding del volume e il provisioning dinamico. Se impostato su “ Immediate ”, i volumi vengono allocati non appena viene creato il PVC. Tuttavia,
le implementazioni multizona di Data Foundation di OpenShift richiedono classi di archiviazione con l'opzione " VolumeBindingMode " impostata su " WaitForFirstConsumer", il che ritarda l'associazione
del volume fino a quando non viene pianificato un pod che utilizza il PVC. In questo modo si garantisce che i volumi vengano creati nella stessa zona del pod.
-
Crea la tua propria classe di archiviazione con
VolumeBindingModeimpostato suWaitForFirstConsumero scegli una classe di archiviazione preesistente con gli stessi parametri. -
Indica il nome del tuo cluster di archiviazione Data Foundation di OpenShift.
oc get storagecluster -n openshift-storageOutput di esempio:
NAME AGE ocs-storagecluster 71d -
Eliminare il cluster di memoria.
oc delete storagecluster <storage_cluster_name> -n openshift-storage -
Verificare che il cluster di memoria sia stato eliminato e che non sia elencato.
oc get storagecluster -n openshift-storage -
Ricrea il cluster di archiviazione utilizzando la classe di archiviazione scelta al punto 1. Assicurati di specificare la classe di archiviazione corretta nei campi “
monStorageClassName” e “osdStorageClassName”.