Depuración de errores de Portworx

Revise las opciones para depurar Portworx y busque el origen 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 Portworx 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 de Portworx y los pods de plugin muestran un estado de 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 | grep `portworx\|stork`
    
    Salida de ejemplo:
    portworx-594rw                          1/1       Running     0          20h
    portworx-rn6wk                          1/1       Running     0          20h
    portworx-rx9vf                          1/1       Running     0          20h
    stork-6b99cf5579-5q6x4                  1/1       Running     0          20h
    stork-6b99cf5579-slqlr                  1/1       Running     0          20h
    stork-6b99cf5579-vz9j4                  1/1       Running     0          20h
    stork-scheduler-7dd8799cc-bl75b         1/1       Running     0          20h
    stork-scheduler-7dd8799cc-j4rc9         1/1       Running     0          20h
    stork-scheduler-7dd8799cc-knjwt         1/1       Running     0          20h
    
  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. 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 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. Consulte los registros más recientes para ver si hay mensajes de error. Revise en la documentación de resolución de problemas de Portworx 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 de 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 de 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.

Actualizar diagramas de Helm

  1. Busque la última versión del diagrama de Helm.

  2. Liste los diagramas de Helm instalados en el clúster y compare la versión que ha instalado con la versión más reciente.

    helm list --all-namespaces
    
  3. Si hay una versión más reciente disponible, instale la nueva versión. Para obtener instrucciones, consulte Actualización de Portworx en el clúster.