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.

    kubectl 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.

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

    kubectl 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.
        kubectl 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}
        kubectl 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 espacio de nombres kube-system.
    kubectl 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}
        kubectl 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.

Comprobar y actualizar la versión de la CLI de kubectl

Si utiliza una versión de CLI de kubectl que no coincide al menos con la versión major.minor de los clústeres, es posible que se produzcan resultados inesperados. Por ejemplo, Kubernetes no es compatible con versiones de cliente kubectl 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 la CLI de kubectl que se ejecuta en la máquina local coincide con la versión de Kubernetes que está instalada en el clúster. Visualice la versión de la CLI de kubectl que está instalada en el clúster y en la máquina local.

    kubectl version
    

    Salida de ejemplo:

    Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.36", 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.36+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 kubectl en su equipo local y en su clúster no coinciden, actualice su clúster o instale una versión diferente de la CLI en su 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.