Depuración de errores de Block Storage for Classic

Revise las opciones para depurar Block Storage for Classic y busque las causas de las anomalías.

Comprobar si el pod que monta la instancia de almacenamiento se ha desplegado correctamente

Siga los pasos para revisar los mensajes de error relacionados con el despliegue del pod.

  1. Obtenga una lista de pods en el clúster. Un pod se ha desplegado correctamente si muestra el estado Running.

    oc get pods
    
  2. Obtenga los detalles del pod y revise los mensajes de error que se muestran en la sección Events de la salida de la CLI.

    oc describe pod <pod_name>
    
  3. Recupere los registros para el pod y revise los mensajes de error.

    oc logs <pod_name>
    
  4. Revise en la documentación de resolución de problemas de Block Storage for Classic los pasos para resolver los errores comunes.

Reiniciar el pod de app

Algunos problemas se pueden resolver reiniciando y volviendo a desplegar los pods. Siga los pasos para volver a desplegar un pod específico.

  1. Si el pod forma parte de un despliegue, suprima el pod y deje que el despliegue lo reconstruya. Si no forma parte de un despliegue, suprímalo y vuelva a aplicar el archivo de configuración de pod.

    1. Suprima el pod.
        oc delete pod <pod_name>
        ```
        Salida de ejemplo
        ```sh {: screen}
        pod "nginx" deleted
        ```
    2. Vuelva a aplicar el archivo de configuración para volver a desplegar el pod.
    ```sh {: pre}
        oc apply -f <app.yaml>
        ```
        Salida de ejemplo
        ```sh {: pre}
        pod/nginx created
        ```
    
  2. Si el reinicio del pod no resuelve el problema, vuelva a cargar los nodos trabajadores.

  3. Verifique que utiliza la última versión de IBM Cloud y del plugin de IBM Cloud Kubernetes Service.

    ibmcloud update
    
    ibmcloud plugin repo-plugins
    
    ibmcloud plugin update
    

Verificar que el controlador de almacenamiento y los pods de plugin muestran un estado Running

Siga los pasos para comprobar el estado del controlador de almacenamiento y los pods de plugin y revise los mensajes de error.

  1. Obtenga una lista de los pods del proyecto kube-system.

    oc get pods -n kube-system
    
  2. Si el controlador de almacenamiento y los pods de plugin no muestran un estado de Ejecución, obtenga más detalles del pod para encontrar la causa raíz. Dependiendo del estado del pod, puede que fallen los comandos siguientes.

    1. Obtenga los nombres de los contenedores que se ejecutan en el pod del controlador.
        kubectl describe pod POD_NAME -n kube-system
        ```
    2. Exporte los registros del pod de controlador a un archivo `logs.txt` en la máquina local.
    
    ```sh {: pre}
        oc logs <pod_name> -n kube-system > logs.txt
        ```
    3. Revise el archivo de registro.
    
    ```sh {: pre}
        cat logs.txt
        ```
    
    
  3. Si el controlador de almacenamiento y los pods de plugin no muestran un estado de Ejecución, obtenga más detalles del pod para encontrar la causa raíz. En función del estado del pod, es posible que no pueda ejecutar todos los mandatos siguientes.

    1. Obtenga los nombres de los contenedores que se ejecutan en el pod del controlador.
        kubectl get pod ibm-vpc-block-csi-controller-0 -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n'
        ```
        **Salida de ejemplo para Block Storage for VPC**
        ```sh {: screen}
        csi-provisioner
        csi-attacher
        liveness-probe
        iks-vpc-block-driver
        ```
    2. Exporte los registros de contenedor del pod del controlador a un archivo `logs.txt` en la máquina local.
    ```sh {: pre}
        oc logs <pod_name> -n kube-system -c <container_name> > logs.txt
        ```
    
  4. Consulte los registros más recientes para ver si hay mensajes de error. Revise en la documentación de resolución de problemas de Block Storage for Classic los pasos para resolver los errores comunes.

Comprobar si la PVC se ha suministrado correctamente.

Siga los pasos para comprobar el estado de la PVC y revise los mensajes de error.

  1. Compruebe el estado de la PVC. Una PVC se ha suministrado correctamente si la PVC muestra el estado Bound.

    oc get pvc
    
    • Si la PVC muestra un estado de Bound, la PVC se ha suministrado correctamente.

      Salida de ejemplo

      NAME         STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                AGE
      silver-pvc   Bound     pvc-4b881a6b-ada8-4a44-b568-fe909107d756   24Gi       RWX            ibmc-file-silver            7m29s
      
    • Si el estado de la PVC muestra Pending, describa la PVC y revise en la sección Events de la salida si hay avisos o mensajes de error. Tenga en cuenta que las PVC que hacen referencia a clases de almacenamiento con la modalidad de enlace de volumen establecida en WaitForFirstConsumer permanecen Pending hasta que se despliega un pod de app que utiliza la PVC.

      oc describe pvc <pvc_name>
      

      Salida de ejemplo

      Name:          local-pvc
      Namespace:     default
      StorageClass:  sat-local-file-gold
      Status:        Pending
      Volume:        
      Labels:        <none>
      Annotations:   <none>
      Finalizers:    [kubernetes.io/pvc-protection]
      Capacity:      
      Access Modes:  
      VolumeMode:    Filesystem
      Mounted By:    <none>
      Events:
      Type     Reason              Age                 From                         Message
      ----     ------              ----                ----                         -------
      Warning  ProvisioningFailed  60s (x42 over 11m)  persistentvolume-controller  storageclass.storage.k8s.io "sat-local-file-gold" not found
      
  2. Revise en la documentación de resolución de problemas de Block Storage for Classic los pasos para resolver los errores comunes.

Comprobación y actualización de la versión de CLI de oc

Si utiliza una versión de CLI de oc que no coincide al menos con la versión major.minor del clúster, es posible que experimente resultados inesperados. Por ejemplo, Kubernetes no es compatible con versiones de cliente oc que tengan una diferencia de dos o más versiones con respecto a la versión del servidor (n ± 2).

  1. Verifique que la versión de CLI de oc que ejecuta en la máquina local coincide con la versión de Kubernetes instalada en el clúster. Muestre la versión de CLI de oc que está instalada en el clúster y en la máquina local.

    oc version
    

    Salida de ejemplo:

    Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.35", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"darwin/amd64"}
    Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.35+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
    

    Las versiones de la CLI coinciden si aparece la misma versión en GitVersion para el cliente y para el servidor. Puede pasar por alto la parte +IKS de la versión del servidor.

  2. Si las versiones de la CLI oc en tu equipo local y en tu clúster no coinciden, actualiza tu clúster o instala una versión diferente de la CLI en tu equipo local.

Comprobar y actualizar el controlador de Block Storage for Classic

  1. Para Block Storage for VPC, verifique que tiene la versión más reciente del complemento de clúster Block Storage for VPC.

  2. Para Block Storage for Classic en clústeres clásicos, asegúrese de que ha instalado la versión más reciente del diagrama de Helm para el plugin.

    1. Actualice los repositorios del diagrama de Helm.
        helm repo update
        ```
    2. Obtenga una lista de los diagramas de Helm del repositorio.
    ```sh {: pre}
        helm search repo iks-charts | grep block-storage-plugin
        ```
        Salida de ejemplo
        ```sh {: screen}
        iks-charts-stage/ibmcloud-block-storage-plugin    1.5.0                                                        A Helm chart for installing ibmcloud block storage plugin   
        iks-charts/ibmcloud-block-storage-plugin          1.5.0                                                        A Helm chart for installing ibmcloud block storage plugin   
        ```
    3. Obtenga una lista de los diagramas de Helm instalados en el clúster y compare la versión que ha instalado con la versión que está disponible.
    ```sh {: pre}
        helm list --all-namespaces
        ```
    4. Si hay una versión más reciente disponible, instale esta versión. Para obtener instrucciones, consulte [Actualización del plugin IBM Cloud Block Storage](/docs/openshift?topic=openshift-vpc-block#vpc-addon-update).