Depurando falhas do IBM Cloud File Storage for Classic
Revise as opções para depurar o File 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.
-
Liste os pods em seu cluster. Um pod será implementado com êxito se o pod mostrar um status de Em execução.
kubectl get pods -
Obtenha os detalhes do seu pod e revise qualquer mensagem de erro exibida na seção Eventos da sua saída de CLI.
kubectl describe pod <pod_name> -
Recupere os logs para o seu pod e revise qualquer mensagem de erro.
kubectl logs <pod_name>
Reiniciando o pod do app
É possível resolver alguns problemas reiniciando e reimplementando seus pods. Siga as etapas para reimplementar um pod específico.
-
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.
- Exclua o pod.
kubectl 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} kubectl apply -f <app.yaml> ``` Saída de exemplo ```sh {: pre} pod/nginx created ``` -
Se a reinicialização de seu pod não resolver o problema, recarregue os nós do trabalhador.
-
Verifique se você usa a versão mais recente do IBM Cloud e do plug-in do IBM Cloud Kubernetes Service.
ibmcloud updateibmcloud plugin repo-pluginsibmcloud 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.
-
Liste os pods no namespace
kube-system.kubectl get pods -n kube-system -
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.
- 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} kubectl logs <pod_name> -n kube-system > logs.txt ``` 3. Revise o arquivo de log. ```sh {: pre} cat logs.txt ``` -
Confira os logs mais recentes para verificar se há mensagens de erro. Revise a documentação de resolução de problemas do File Storage for Classic para resolver 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.
-
Verifique o status de seu PVC. Uma PVC será provisionada com êxito se a PVC mostrar um status Ligado.
kubectl 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
WaitForFirstConsumerpermanecem no estado Pendente até que um pod do app que as use seja implementado.kubectl 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
-
Verificando e atualizando a versão da CLI kubectl
Se você usar uma versão da CLI kubectl que não corresponda pelo menos à versão major.minor do seu cluster, poderá enfrentar resultados inesperados. Por exemplo, o Kubernetes não suporta versões do cliente kubectl que sejam duas ou mais versões distantes da versão do servidor (n +/-2).
-
Verifique se a versão da CLI
kubectlque você executa em sua máquina local corresponde à versão do Kubernetes que está instalada em seu cluster. Mostre a versão da CLIkubectlque está instalada em seu cluster e em sua máquina local.kubectl versionSaí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
GitVersionpara o cliente e o servidor. É possível ignorar a parte+IKSda versão para o servidor. -
Se as versões da CLI do
kubectlem 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.