¿Por qué el almacenamiento en bloque cambia a solo lectura?

Solución de problemas de volúmenes de almacenamiento en bloque que pasan a ser de solo lectura.

[Nube privada virtual] {: tag-vpc} Infraestructura clásica

Es posible que note los siguientes síntomas:

  • Cuando ejecuta oc get pods -o wide, ve que varios pods del mismo nodo trabajador quedan bloqueados en el estado ContainerCreating o CrashLoopBackOff. Todos estos pods utilizan la misma instancia de almacenamiento en bloque.
  • Cuando ejecuta un mandato oc describe pod, ve el siguiente error en la sección Events: MountVolume.SetUp failed for volume ... read-only.

Si se produce un error de red mientras un pod escribe en un volumen, la infraestructura de IBM Cloud protege los datos del volumen para que no resulten dañados cambiando el volumen a una modalidad de solo lectura. Los pods que utilizan este volumen no pueden continuar escribiendo en el volumen y fallan.

Comprueba la versión del complemento, vuelve a crear tu aplicación y reinicia de forma segura tu nodo de trabajo.

  1. Compruebe la versión del plugin IBM Cloud Block Storage que está instalado en el clúster.
    helm list --all-namespaces
    
  2. Compruebe que utiliza la versión más reciente del plugin IBM Cloud Block Storage. Si no es así, actualice el plugin.
  3. Si ha utilizado un despliegue de Kubernetes para el pod, reinicie el pod que está fallando eliminando el pod y dejando que Kubernetes lo vuelva a crear. Si no ha utilizado un despliegue, recupere el archivo YAML que se ha utilizado para crear el pod ejecutando oc get pod <pod_name> -o yaml >pod.yaml. A continuación, suprima y vuelva a crear manualmente el pod.
    oc delete pod <pod_name>
    
  4. Compruebe si volver a crear el pod ha resuelto el problema. Si no es así, vuelva a cargar el nodo trabajador.
    1. Busque el nodo trabajador en el que se ejecuta el pod y anote la dirección IP privada asignada al nodo trabajador.
        oc describe pod <pod_name> | grep Node
        ```
        Salida de ejemplo:
        ```sh {: screen}
        Node:               10.75.XX.XXX/10.75.XX.XXX
        Node-Selectors:  <none>
        ```
    2. Recupere el **ID** del nodo trabajador utilizando la dirección IP privada del paso anterior.
    ```sh {: pre}
        ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID
        ```
    3. [vuelva a cargar el nodo trabajador](/docs/openshift?topic=openshift-kubernetes-service-cli#worker-reload-cli) de forma segura.