Depurando falhas do Block Storage for Classic

Revise as opções para depurar o Block Storage for Classic 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 Block Storage for Classic 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. 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 get pod ibm-vpc-block-csi-controller-0 -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n'
        ```
        **Saída de exemplo para o Block Storage for VPC**
        ```sh {: screen}
        csi-provisioner
        csi-attacher
        liveness-probe
        iks-vpc-block-driver
        ```
    2. Exporte os logs de contêiner do pod do driver para um arquivo `logs.txt` em sua máquina local.
    ```sh {: pre}
        oc logs <pod_name> -n kube-system -c <container_name> > logs.txt
        ```
    
  4. Confira os logs mais recentes para verificar se há mensagens de erro. Veja a documentação de resolução de problemas do Block Storage for Classic para obter etapas de resolução de erros comuns.

Verificando se a PVC foi provisionada com sucesso.

Siga as etapas para verificar o status da PVC e se há mensagens de erro.

  1. Verifique o status de seu PVC. Uma PVC será provisionada com êxito se a PVC mostrar um status Ligado.

    oc get pvc
    
    • Se a PVC mostrar um status de Bound, ela foi provisionada com sucesso.

      Saída de exemplo

      NAME         STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                AGE
      silver-pvc   Bound     pvc-4b881a6b-ada8-4a44-b568-fe909107d756   24Gi       RWX            ibmc-file-silver            7m29s
      
    • Se o status da PVC for Pendente, descreva a PVC e revise a seção Eventos da saída para verificar se há avisos ou mensagens de erro. Observe que as PVCs que referenciam classes de armazenamento com o modo de ligação de volume configurado como WaitForFirstConsumer permanecem no estado Pendente até que um pod do app que as use seja implementado.

      oc describe pvc <pvc_name>
      

      Saída de exemplo

      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. Veja a documentação de resolução de problemas do Block Storage for Classic 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.

Verificando e atualizando o driver do Block Storage for Classic

  1. Para Block Storage for VPC, verifique se você tem a versão mais recente do Block Storage for VPC complemento do cluster.

  2. Para o Block Storage for Classic em clusters clássicos, certifique-se de instalar a versão mais recente do gráfico do Helm para o plug-in.

    1. Atualize seus repositórios de gráfico do Helm.
        helm repo update
        ```
    2. Liste os gráficos do Helm no repositório.
    ```sh {: pre}
        helm search repo iks-charts | grep block-storage-plugin
        ```
        Saída de exemplo
        ```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. Liste os gráficos do Helm instalados em seu cluster e compare a versão instalada com a versão que está disponível.
    ```sh {: pre}
        helm list --all-namespaces
        ```
    4. Se uma versão mais recente estiver disponível, instale-a. Para obter instruções, consulte [Atualizando o plug-in do IBM Cloud Block Storage](/docs/openshift?topic=openshift-vpc-block#vpc-addon-update).