Resolver problemas com volumes do Managed Lustre

Esta página inclui etapas de solução de problemas comuns e erros ao usar o driver CSI do Google Cloud Managed Lustre no Google Kubernetes Engine.

Antes de seguir as etapas de solução de problemas nesta seção, consulte as limitações ao se conectar ao Managed Lustre do GKE.

Capacidade mínima atualizada da instância

A capacidade mínima das instâncias do Managed Lustre foi atualizada para 9.000 GiB. Para criar instâncias de 9.000 GiB usando o driver CSI do Managed Lustre, faça upgrade da versão do cluster para 1.34.0-gke.2285000 ou mais recente.

Nível de desempenho incorreto para instâncias do Lustre provisionadas dinamicamente

Ao provisionar dinamicamente uma instância do Lustre, a criação da instância falha com um erro InvalidArgument para PerUnitStorageThroughput, independentemente do valor perUnitStorageThroughput especificado na solicitação de API. Isso afeta as versões do GKE 1.33 anteriores a 1.33.4-gke.1036000.

Alternativa:

Faça upgrade do cluster do GKE para a versão 1.33.4-gke.1036000 ou mais recente. Se você estiver usando o canal estável, uma versão mais recente ainda não estará disponível. Nesse caso, é possível selecionar manualmente uma versão dos canais regular ou rápido que inclua a correção.

Portas de comunicação do Managed Lustre

O driver CSI do Managed Lustre usa portas diferentes para comunicação com instâncias do Managed Lustre, dependendo da versão do cluster do GKE e das configurações do Managed Lustre.

  • Porta padrão (988) : para novos clusters do GKE que executam a versão 1.33.2-gke.4780000 ou mais recente, o driver usa a porta 988 para comunicação do Lustre por padrão.

  • Porta legada (6988) : o driver usa a porta 6988 nos seguintes cenários:

    • Versões anteriores do GKE:se o cluster do GKE executar uma versão anterior a 1.33.2-gke.4780000, a flag --enable-legacy-lustre-port será necessária ao ativar o driver CSI. A ativação dessa flag contorna um conflito de porta com o gke-metadata-server em nós do GKE.
    • Instâncias do Managed Lustre com suporte ao GKE:se você estiver se conectando a uma instância do Managed Lustre criada com a flag --gke-support-enabled, inclua --enable-legacy-lustre-port ao ativar o driver CSI, independentemente da versão do cluster. Sem essa flag, o cluster do GKE não vai conseguir montar a instância do Lustre.

    Para mais informações sobre como ativar o driver CSI com a porta legada, consulte Portas de comunicação do Lustre.

Consultas de registros

Para verificar os registros, execute a consulta a seguir em Análise de registros.

Para retornar os registros do servidor de nós do driver CSI do Managed Lustre:

resource.type="k8s_container"
resource.labels.pod_name=~"lustre-csi-node*"

Resolver problemas de provisionamento de volume

Se o PersistentVolumeClaim (PVC) permanecer no estado Pending e nenhum PersistentVolume (PV) for criado após 20 a 30 minutos, um erro poderá ter ocorrido.

  1. Verifique os eventos do PVC:

    kubectl describe pvc PVC_NAME
    
  2. Se o erro indicar problemas de configuração ou argumentos inválidos, verifique seus parâmetros do StorageClass.

  3. Recrie o PVC.

  4. Se o problema persistir, entre em contato com o Cloud Customer Care.

Resolver problemas de montagem de volume

Depois que o pod é programado para um nó, o volume é montado. Se isso falhar, verifique os eventos do pod e os registros do kubelet.

kubectl describe pod POD_NAME

Problemas de ativação do driver CSI

Sintoma:

MountVolume.MountDevice failed for volume "yyy" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers

ou

MountVolume.SetUp failed for volume "yyy" : kubernetes.io/csi: mounter.SetUpAt failed to get CSI client: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers

Causa:o driver CSI não está ativado ou ainda não está em execução.

Resolução:

  1. Verifique se o driver CSI está ativado.
  2. Se o cluster foi escalonado ou atualizado recentemente, aguarde alguns minutos para que o driver se torne funcional.
  3. Se o erro persistir, verifique os registros lustre-csi-node para "Operação não permitida". Isso indica que a versão do nó é muito antiga para oferecer suporte ao Managed Lustre. Para resolver esse problema, faça upgrade do pool de nós para a versão 1.33.2-gke.1111000 ou mais recente.
  4. Se os registros mostrarem "LNET_PORT mismatch", faça upgrade do pool de nós para garantir que os módulos do kernel do Lustre compatíveis estejam instalados.

O ponto de montagem já existe

Sintoma:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = AlreadyExists
desc = A mountpoint with the same lustre filesystem name "yyy" already exists on
node "yyy". Please mount different lustre filesystems

Causa:não há suporte para a montagem de vários volumes de diferentes instâncias do Managed Lustre com o mesmo nome de sistema de arquivos em um único nó.

Resolução:use um nome de sistema de arquivos exclusivo para cada instância do Managed Lustre.

Falha na montagem: arquivo ou diretório não encontrado

Sintoma:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: No such file or directory

Causa:o nome do sistema de arquivos especificado está incorreto ou não existe.

Resolução:verifique se o fs_name na configuração do StorageClass ou do PV corresponde à instância do Managed Lustre.

Falha na montagem: erro de entrada/saída

Sintoma:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: Input/output error

Causa:o cluster não pode se conectar à instância do Managed Lustre.

Resolução:

  1. Verifique o endereço IP da instância do Managed Lustre.
  2. Verifique se o cluster do GKE e a instância do Managed Lustre estão na mesma rede VPC ou se estão corretamente conectados por peering.

Erros internos

Sintoma: rpc error: code = Internal desc = ...

Resolução: se o erro persistir, entre em contato com o Cloud Customer Care.

Resolver problemas de desmontagem de volume

Sintoma:

UnmountVolume.TearDown failed for volume "yyy" : rpc error: code = Internal desc = ...

Resolução:

  1. Forçar a exclusão do pod:

    kubectl delete pod POD_NAME --force
    
  2. Se o problema persistir, entre em contato com o Cloud Customer Care.

Resolver problemas de exclusão de volume

Se o PV permanecer no estado "Liberado" por um período prolongado (por exemplo, mais de uma hora) após a exclusão do PVC, entre em contato com o Cloud Customer Care.

Resolver problemas de expansão de volume

PVC preso em ExternalExpanding

Sintoma:o status do PVC não muda para Resizing, e os eventos mostram ExternalExpanding.

Causa:o campo allowVolumeExpansion pode estar ausente ou definido como false.

Resolução:verifique se o StorageClass tem allowVolumeExpansion: true.

kubectl get storageclass STORAGE_CLASS_NAME -o yaml

Falha na expansão: argumento inválido

Sintoma: VolumeResizeFailed: rpc error: code = InvalidArgument ...

Causa:o tamanho solicitado é inválido (por exemplo, não é um múltiplo do tamanho da etapa ou está fora dos limites).

Resolução: verifique os intervalos de capacidade válidos e atualize o PVC com um tamanho válido.

Falha na expansão: erro interno

Sintoma: VolumeResizeFailed ... rpc error: code = Internal

Resolução:repita a expansão reaplicando o PVC. Se a falha ocorrer repetidamente, entre em contato com o Cloud Customer Care.

Prazo excedido

Sintoma: VolumeResizeFailed com DEADLINE_EXCEEDED.

Causa:a operação está demorando mais do que o esperado, mas ainda pode estar em andamento.

Resolução:aguarde a conclusão da operação. O redimensionador vai tentar novamente de forma automática. Se ele permanecer preso por muito tempo (por exemplo, > 90 minutos), entre em contato com o suporte.

Cota excedida

Sintoma:a expansão falha devido a limites de cota.

Resolução: Peça um aumento de cota ou peça um aumento de capacidade menor.