Esta página inclui etapas de solução de problemas para alguns erros e problemas comuns.
Instância FALHOU
O status FAILED
significa que os dados da instância foram perdidos e que ela
precisa ser excluída.
As instâncias de Parallelstore em um estado FAILED
continuam sendo cobradas até serem
excluídas.
Para recuperar o estado de uma instância, siga as instruções em Gerenciar instâncias: recuperar uma instância.
Para excluir uma instância, leia Gerenciar instâncias: excluir uma instância.
Tempos limite durante a montagem de dfuse ou testes de rede
Se, ao montar a instância do Parallelstore, o comando dfuse -m
expirar
ou se comandos de teste de rede, como self_test
ou daos health net-test
, expirarem,
o agente DAOS pode ter selecionado a interface de rede errada durante a configuração.
Para verificar o agente DAOS, execute
self_test --use-daos-agent-env -r 1
Se o teste informar um problema de conexão, talvez seja necessário excluir as interfaces de rede
que não conseguem alcançar os IPs na lista access_points
.
Execute
ifconfig
para listar as interfaces de rede disponíveis. Um exemplo de saída pode mostrar várias interfaces de rede, comoeth0
,docker0
,ens8
,lo
etc.Pare o daos_agent.
Edite
/etc/daos/daos_agent.yml
para excluir as interfaces de rede indesejadas. Remova a marca de comentário da linhaexclude_fabric_ifaces
e atualize os valores. As entradas que você incluir são específicas para sua situação. Exemplo:exclude_fabric_ifaces: ["docker0", "ens8", "lo"]
Reinicie o daos_agent.
ENOSPC
quando há capacidade não utilizada na instância
Se a instância usar o mínimo ou o balanceamento de faixas (padrão), você poderá encontrar
erros ENOSPC
, mesmo que os arquivos não estejam usando toda a capacidade da
instância. Isso provavelmente vai acontecer ao gravar arquivos grandes que geralmente são maiores
que 8 GiB ou ao importar esses arquivos do Cloud Storage.
Use o máximo de remoção de arquivos para reduzir a probabilidade desses erros.
Solução de problemas do Google Kubernetes Engine
A seção a seguir lista alguns problemas comuns e as etapas para resolvê-los.
Transport endpoint is not connected
em pods de carga de trabalho
Esse erro ocorre devido à interrupção do dfuse. Na maioria dos casos, o dfuse foi encerrado
por falta de memória. Use as anotações do pod
gke-parallelstore/[cpu-limit|memory-limit]
para alocar mais recursos ao
contêiner de sidecar da Parallelstore. É possível definir
gke-parallelstore/memory-limit: "0"
para remover a limitação de memória do sidecar
se você não souber quanta memória quer alocar. Isso
só funciona com clusters padrão. Com clusters do Autopilot, não é possível
usar o valor 0
para cancelar a definição dos limites e das solicitações de recursos do contêiner sidecar. É
preciso definir explicitamente um limite de recursos maior para o contêiner de arquivo secundário.
Depois de modificar as anotações, reinicie o pod da carga de trabalho. Adicionar anotações a uma carga de trabalho em execução não modifica dinamicamente a alocação de recursos.
Avisos de eventos de pod
Se os pods da carga de trabalho não puderem ser iniciados, verifique os eventos do pod:
kubectl describe pod POD_NAME -n NAMESPACE
As soluções a seguir são para erros comuns.
Problemas de ativação do driver CSI
Confira a seguir os erros comuns de ativação do driver CSI:
MountVolume.MountDevice failed for volume "volume" : kubernetes.io/csi:
attacher.MountDevice failed to create newCsiDriverClient:
driver name parallelstore.csi.storage.gke.io not found in the list of registered CSI drivers
MountVolume.SetUp failed for volume "volume" : kubernetes.io/csi:
mounter.SetUpAt failed to get CSI client:
driver name parallelstore.csi.storage.gke.io not found in the list of registered CSI drivers
Esses avisos indicam que o driver CSI não está ativado ou em execução.
Se o cluster acabou de ser escalonado, atualizado ou atualizado, esse aviso é normal e temporário. Os pods do driver CSI levam alguns minutos para ficarem funcionais após as operações do cluster.
Caso contrário, confirme se o driver CSI está ativado no cluster. Consulte
Ativar o driver CSI para mais detalhes. Se o CSI estiver ativado,
cada nó mostrará um pod chamado parallelstore-csi-node-id
em execução.
Falhas do MountVolume.SetUp
Código do erro | Alerta de evento do pod | Solução |
ResourceExhausted |
|
O processo dfuse foi encerrado, o que geralmente é causado por OOM. Considere
aumentar o limite de memória do contêiner do sidecar usando a anotação
gke-parallelstore/memory-limit .
Se você não tiver certeza da quantidade de memória que quer alocar para
o sidecar de parallelstore, recomendamos definir
|
Cancelado |
|
A operação de montagem do volume foi abortada devido ao limite de taxa ou a operações existentes. Esse aviso é normal e temporário. |
InvalidArgument |
MountVolume.SetUp failed for volume "volume" : rpc
error: code = InvalidArgument desc =
|
Se você tiver fornecido argumentos inválidos no StorageClass ou no volume persistente, o registro de erros vai indicar os campos com os argumentos inválidos. Para provisionamento dinâmico, verifique a Classe de armazenamento. Para provisionamento estático, verifique o Volume permanente. |
FailedPrecondition |
MountVolume.SetUp failed for volume "volume" : rpc
error: code = FailedPrecondition desc = can not find the sidecar
container in Pod spec
|
O contêiner do sidecar do Parallelstore não foi injetado. Verifique se a anotação
gke-parallelstore/volumes: "true" do pod está definida corretamente.
|
Solução de problemas de redes VPC
Permissão negada para adicionar peering ao serviço servicenetworking.googleapis.com
ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.
Esse erro significa que você não tem a permissão do IAM servicenetworking.services.addPeering
na sua conta de usuário.
Consulte Controle de acesso com o IAM para instruções sobre como adicionar um dos seguintes papéis à sua conta:
roles/compute.networkAdmin
ouroles/servicenetworking.networksAdmin
Não é possível modificar intervalos alocados em CreateConnection
ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection.
Esse erro é retornado quando você já criou um peering de VPC nessa rede com intervalos de IP diferentes. Há duas soluções possíveis:
Substitua os intervalos de IP atuais:
gcloud services vpc-peerings update \
--network=NETWORK_NAME \
--ranges=IP_RANGE_NAME \
--service=servicenetworking.googleapis.com \
--force
Ou adicione o novo intervalo de IP à conexão atual:
Extraia a lista de intervalos de IP existentes para o peering:
EXISTING_RANGES=$( gcloud services vpc-peerings list \ --network=NETWORK_NAME \ --service=servicenetworking.googleapis.com \ --format="value(reservedPeeringRanges.list())" )
Em seguida, adicione o novo intervalo ao peering:
gcloud services vpc-peerings update \ --network=NETWORK_NAME \ --ranges=$EXISTING_RANGES,IP_RANGE_NAME \ --service=servicenetworking.googleapis.com
Intervalo de endereços IP esgotado
Problema: a criação da instância falha com o erro de esgotamento de intervalo:
ERROR: (gcloud.alpha.Parallelstore.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted
Solução: siga o guia da VPC para recriar ou estender o intervalo de IP atual.
Se você estiver recriando uma instância do Parallelstore, recrie o intervalo de IP em vez de estendê-lo.