Depurando falhas do OpenShift Data Foundation

Revise as opções para depurar o ODF 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 ODF 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
    

Verificando se o driver do armazenamento 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
    
  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 de seu pod, os comandos a seguir podem falhar.

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

Depurando seus recursos do ODF

Descreva seus recursos do ODF e revise as saídas de comando para verificar se há mensagens de erro.

  1. Liste o nome do cluster do ODF.

    oc get ocscluster
    

    Saída de exemplo:

    NAME             AGE
    ocscluster-vpc   71d
    
  2. Descreva o cluster de armazenamento e revise a seção Events da saída para verificar se há mensagens de erro.

    oc describe ocscluster <ocscluster-name>
    
  3. Liste os pods de ODF no espaço de nomes kube-system e verifique se eles estão Running

    oc get pods -n kube-system
    

    Saída de exemplo

    NAME                                                   READY   STATUS    RESTARTS   AGE
    ibm-keepalived-watcher-5g2gs                           1/1     Running   0          7d21h
    ibm-keepalived-watcher-8l4ld                           1/1     Running   0          7d21h
    ibm-keepalived-watcher-mhkh5                           1/1     Running   0          7d21h
    ibm-master-proxy-static-10.240.128.10                  2/2     Running   0          71d
    ibm-master-proxy-static-10.240.128.11                  2/2     Running   0          71d
    ibm-master-proxy-static-10.240.128.12                  2/2     Running   0          71d
    ibm-ocs-operator-controller-manager-55667f4d68-md4zb   1/1     Running   8          15d
    ibm-vpc-block-csi-controller-0                         4/4     Running   0          48d
    ibm-vpc-block-csi-node-6gnwv                           3/3     Running   0          48d
    ibm-vpc-block-csi-node-j2h62                           3/3     Running   0          48d
    ibm-vpc-block-csi-node-xpwpf                           3/3     Running   0          48d
    vpn-5b8694cdb-pll6z
    
  4. Descreva o pod ibm-ocs-operator-controller-manager e revise a seção Events na saída para verificar se há mensagens de erro.

    oc describe pod <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
    
  5. Revise os logs do ibm-ocs-operator-controller-manager.

    oc logs <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
    
  6. Descreva NooBaa e revise a seção Events da saída para verificar se há mensagens de erro.

    oc describe noobaa -n openshift-storage
    
  7. Descreva o pod ibm-storage-metrics-agent e revise a seção Events na saída para verificar se há mensagens de erro.

    oc get pods -n kube-system -l name=ibm-storage-metrics-agent
    
    NAME                                                  READY   STATUS    RESTARTS   AGE ibm-storage-metrics-agent-8685869cc6-79qzq   
    
  8. Revise os logs do ibm-storage-metrics-agent.

    oc logs ibm-storage-metrics-agent-xxx -n kube-system
    
  9. Descreva o ocscluster e revise a saída para mensagens de erro.

    oc describe ocscluster <ocscluster-name> -n openshift-storage
    
  10. Reúna dados sobre o cluster usando o comando oc adm must-gather.

    oc adm must-gather --image=registry.redhat.io/ocs4/ocs-must-gather-rhel8:latest --dest-dir=ocs_mustgather
    
  11. Para clusters clássicos ou clusters Satellite que utilizam volumes locais no nó do trabalhador, certifique-se de que o disk-by-id para os volumes que você usou para os parâmetros osd-device-path e mon-device-path existe nos nós do trabalhador. Para obter mais informações sobre como recuperar esses IDs de volume, consulte Reunindo seus detalhes do dispositivo

  12. Revise a documentação de resolução de problemas para etapas de solução de erros comuns.