Depurando falhas do Portworx

Reveja as opções para depurar o Portworx e encontrar as causas raiz de eventuais falhas.

Verificando se o pod que monta sua instância de armazenamento foi implementado com sucesso

Siga as etapas para revisar quaisquer mensagens de erro relacionadas à implementação do pod.

  1. Liste os pods em seu cluster. Um pod será implementado com êxito se o pod mostrar um status de Em execução.

    oc get pods
    
  2. Obtenha os detalhes do seu pod e revise qualquer mensagem de erro exibida na seção Eventos da sua saída de CLI.

    oc describe pod <pod_name>
    
  3. Recupere os logs para o seu pod e revise qualquer mensagem de erro.

    oc logs <pod_name>
    
  4. Veja a documentação de resolução de problemas do Portworx para obter etapas de resolução de erros comuns.

Reiniciando o pod do app

É possível resolver alguns problemas reiniciando e reimplementando seus pods. Siga as etapas para reimplementar um pod específico.

  1. Se o seu pod for parte de uma implementação, exclua o pod e deixe que a implementação o reconstrua. Se o seu pod não for parte de uma implementação, exclua o pod e reaplique o seu arquivo de configuração do pod.

    1. Exclua o pod.
        oc delete pod <pod_name>
        ```
        Saída de exemplo
        ```sh {: screen}
        pod "nginx" deleted
        ```
    2. Reaplique o arquivo de configuração para reimplementar o pod.
    ```sh {: pre}
        oc apply -f <app.yaml>
        ```
        Saída de exemplo
        ```sh {: pre}
        pod/nginx created
        ```
    
  2. Se a reinicialização de seu pod não resolver o problema, recarregue os nós do trabalhador.

  3. Verifique se você usa a versão mais recente do IBM Cloud e do plug-in do IBM Cloud Kubernetes Service.

    ibmcloud update
    
    ibmcloud plugin repo-plugins
    
    ibmcloud plugin update
    

Verifique se o driver de armazenamento do Portworx e os pods do plug-in mostram um status Em execução

Siga as etapas para verificar o status do driver do armazenamento e dos pods do plug-in e revise quaisquer mensagens de erro.

  1. Liste os pods no projeto kube-system.
    oc get pods -n kube-system | grep `portworx\|stork`
    
    Saída de exemplo:
    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. Se o driver de armazenamento e os pods de plug-in não mostrarem um status Em execução, obtenha mais detalhes do pod para localizar a causa raiz. Dependendo do status do seu pod, você pode não conseguir executar todos os comandos a seguir.
    1. Obtenha os nomes dos contêineres que são executados no pod do driver.
        kubectl describe pod <pod_name> -n kube-system
        ```
    2. Exporte os logs do pod do driver para um arquivo `logs.txt` em sua máquina local.
    ```sh {: pre}
        oc logs <pod_name> -n kube-system > logs.txt
        ```
    3. Revise o arquivo de log.
    ```sh {: pre}
        cat logs.txt
        ```
    
  3. Confira os logs mais recentes para verificar se há mensagens de erro. Veja a documentação de resolução de problemas do Portworx para obter etapas de resolução de erros comuns.

Verificando e atualizando a versão da CLI oc

Ao usar uma versão da CLI oc sem correspondência ao menos com a versão major.minor do cluster, é possível receber resultados inesperados. Por exemplo, o Kubernetes não suporta versões do cliente oc que sejam duas ou mais versões distantes da versão do servidor (n +/-2).

  1. Verifique se a versão da CLI oc executada na máquina local corresponde à versão do Kubernetes que está instalada no cluster. Mostre a versão da CLI oc que está instalada em seu cluster e sua máquina local.

    oc version
    

    Saída de exemplo:

    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"}
    

    As versões da CLI corresponderão se você puder ver a mesma versão em GitVersion para o cliente e o servidor. É possível ignorar a parte +IKS da versão para o servidor.

  2. Se as versões da CLI do oc em sua máquina local e no seu cluster não forem as mesmas, atualize o cluster ou instale uma versão diferente da CLI em sua máquina local.

Atualização de gráficos Helm

  1. Localize a versão mais recente do gráfico do Helm.

  2. Liste os gráficos do Helm instalados em seu cluster e compare a versão instalada com a versão mais recente.

    helm list --all-namespaces
    
  3. Caso esteja disponível uma versão mais recente, instale-a. Para obter instruções, consulte Atualizando o Portworx em seu cluster.