¿Por qué el estado de mi clúster de almacenamiento de OpenShift Data Foundation se queda bloqueado en « Failed to reconcile »?
Nube privada virtual Infraestructura clásica
Al crear el clúster de almacenamiento de OpenShift Data Foundation y ejecutar oc describe storagecluster <storage-cluster-name>, aparece un error que indica que los nombres de los PVC superan el límite de caracteres establecido
en Kubernetes.
Los conjuntos de dispositivos son grupos de OSD ( Object Storage Daemons) que utiliza OpenShift Data Foundation para distribuir datos por todo el clúster. Al crear un clúster de almacenamiento, OpenShift Data Foundation crea automáticamente PVC para estos conjuntos de dispositivos.
Al ejecutar el comando «describe», aparece un error similar al del siguiente ejemplo.
ceph-cluster-controller: failed to reconcile. failed to reconcile cluster "ocs-storagecluster-cephcluster": failed to configure local ceph cluster: failed to create cluster: failed to start ceph osds: 3 failures encountered while running osds in namespace openshift-storage: failed to create "provision" job for node "ocs-deviceset-ibmc-vpc-block-metro-retain-10iops-tier-0-datnv6k". Job.batch "rook-ceph-osd-prepare-aaa000aaa111a1a0e10ba1a11aa1a119" is invalid: [spec.template.spec.volumes[8].name: Invalid value: "ocs-deviceset-ibmc-vpc-block-metro-retain-10iops-tier-0-aaaaa1b-bridge": must be no more than 63 characters
Los nombres de PVC de Kubernetes deben tener menos de 63 caracteres. Si dispones de un clúster VPC multizona y creas tu clúster de almacenamiento de OpenShift Data Foundation utilizando una clase de almacenamiento de tipo « retain », como ibmc-vpc-block-metro-retain-10iops-tier, a los PVC del conjunto de dispositivos correspondiente se les asignan nombres que superan el límite de 63 caracteres.
Crea una clase de almacenamiento personalizada con un nombre más corto para garantizar que los nombres de los PVC generados no superen el límite de caracteres de Kubernetes.
-
Obtenga la configuración de YAML de la clase de almacenamiento que desea utilizar en el clúster de almacenamiento de ODF y guárdela en un archivo de la máquina local.
oc get sc ibmc-vpc-block-metro-retain-10iops-tier -o yaml -
Edite el nombre de la clase de almacenamiento. Asegúrate de que el nombre de tu clase de almacenamiento tenga menos de 30 caracteres, para que los ID de los conjuntos de dispositivos del clúster de almacenamiento de OpenShift Data Foundation no superen el límite de 63 caracteres establecido en Kubernetes. Cree una clase de almacenamiento en el clúster.
oc create -f <custom-storage-class.yaml> -
Crea una implementación de Data Foundation de OpenShift que utilice la clase de almacenamiento que has creado.