Perché l'archiviazione blocchi cambia in sola lettura?

Risoluzione dei problemi relativi ai volumi di archiviazione a blocchi che diventano di sola lettura.

Cloud privato virtuale Infrastruttura classica

Potresti vedere i seguenti sintomi:

  • Quando esegui oc get pods -o wide, vedi che più pod sullo stesso nodo di lavoro sono bloccati nello stato ContainerCreating o CrashLoopBackOff. Tutti questi pod utilizzano la stessa istanza di archiviazione blocchi.
  • Quando esegui un comando oc describe pod, vedi il seguente errore nella sezione Eventi: MountVolume.SetUp failed for volume ... read-only.

Se si verifica un errore di rete mentre un pod scrive su un volume, l'infrastruttura IBM Cloud protegge i dati sul volume per evitarne il danneggiamento modificando il volume e impostandolo su una modalità di sola lettura. I pod che utilizzano questo volume non possono continuare a scrivere su di esso e generano un errore.

Verifica la versione del plug-in, crea nuovamente la tua applicazione e ricarica in modo sicuro il nodo di lavoro.

  1. Controlla la versione del plugin IBM Cloud Block Storage installato nel tuo cluster.
    helm list --all-namespaces
    
  2. Verifica che quella che utilizzi è la versione più recente del plugin IBM Cloud Block Storage. In caso contrario, aggiorna il tuo plugin.
  3. Se hai utilizzato una distribuzione Kubernetes per il tuo pod, riavvia il pod che sta riscontrando la condizione di errore rimuovendolo e lasciando che Kubernetes lo crei nuovamente. Se non hai utilizzato una distribuzione, recupera il file YAML utilizzato per creare il tuo pod eseguendo il comando oc get pod <pod_name> -o yaml >pod.yaml``. Quindi elimina e crea di nuovo manualmente il pod.
    oc delete pod <pod_name>
    
  4. Controlla se creare nuovamente il tuo pod ha risolto il problema. Se non lo ha fatto, ricarica il nodo di lavoro.
    1. Trova il nodo di lavoro dove viene eseguito il tuo pod e annota l'indirizzo IP privato assegnato al tuo nodo di lavoro.
        oc describe pod <pod_name> | grep Node
        ```
        Output di esempio:
        ```sh {: screen}
        Node:               10.75.XX.XXX/10.75.XX.XXX
        Node-Selectors:  <none>
        ```
    2. Richiama l'**ID** del tuo nodo di lavoro utilizzando l'indirizzo IP privato dal passo precedente.
    ```sh {: pre}
        ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID
        ```
    3. [Ricarica in modo sicuro il nodo di lavoro](/docs/openshift?topic=openshift-kubernetes-service-cli#worker-reload-cli).