Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Solução de problemas

Colaboradores netapp-aruldeepa

Utilize as dicas fornecidas aqui para solucionar problemas que você possa encontrar durante a instalação e o uso do Trident.

Observação Para obter ajuda com o Trident, crie um pacote de suporte usando tridentctl logs -a -n trident e envie para o suporte da NetApp .

Solução de problemas gerais

  • Se a cápsula Trident não subir corretamente (por exemplo, quando a cápsula Trident fica presa no ContainerCreating fase com menos de dois contêineres prontos), em execução kubectl -n trident describe deployment trident e kubectl -n trident describe pod trident--** pode fornecer informações adicionais. Obtenção de logs do kubelet (por exemplo, via journalctl -xeu kubelet ) também pode ser útil.

  • Se não houver informações suficientes nos registros do Trident , você pode tentar ativar o modo de depuração do Trident passando o parâmetro -d Adicione um parâmetro à configuração de instalação com base na sua opção de instalação.

    Em seguida, confirme se o modo de depuração está ativado usando ./tridentctl logs -n trident e procurando por level=debug msg no registro.

    Instalado com operador
    kubectl patch torc trident -n <namespace> --type=merge -p '{"spec":{"debug":true}}'

    Isso reiniciará todos os pods do Trident , o que pode levar vários segundos. Você pode verificar isso observando a coluna 'IDADE' na saída de kubectl get pod -n trident .

    Para Trident 20.07 e 20.10 use tprov em vez de torc .

    Instalado com Helm
    helm upgrade <name> trident-operator-21.07.1-custom.tgz --set tridentDebug=true`
    Instalado com tridentctl
    ./tridentctl uninstall -n trident
    ./tridentctl install -d -n trident
  • Você também pode obter logs de depuração para cada backend incluindo debugTraceFlags na sua definição de backend. Por exemplo, inclua debugTraceFlags: {"api":true, "method":true,} Para obter chamadas de API e percursos de métodos nos logs do Trident . Os backends existentes podem ter debugTraceFlags configurado com um tridentctl backend update .

  • Ao usar o Red Hat Enterprise Linux CoreOS (RHCOS), certifique-se de que iscsid Está habilitado nos nós de trabalho e é iniciado por padrão. Isso pode ser feito usando as configurações de máquina do OpenShift ou modificando os modelos de ignição.

  • Um problema comum que você pode encontrar ao usar o Trident com "Azure NetApp Files" Isso ocorre quando os segredos do locatário e do cliente provêm de um registro de aplicativo com permissões insuficientes. Para obter uma lista completa dos requisitos do Trident , consulte:"Azure NetApp Files" configuração.

  • Se houver problemas com a montagem de um painel fotovoltaico em um contêiner, certifique-se de que rpcbind Está instalado e em funcionamento. Utilize o gerenciador de pacotes necessário para o sistema operacional do host e verifique se rpcbind Está em execução. Você pode verificar o status do rpcbind serviço executando um systemctl status rpcbind ou seu equivalente.

  • Se um backend Trident relatar que está no failed Embora o estado tenha funcionado anteriormente, é provável que seja causado pela alteração das credenciais SVM/admin associadas ao backend. Atualizando as informações do backend usando tridentctl update backend Ou então, sacudir o pod Trident resolverá esse problema.

  • Se você encontrar problemas de permissão ao instalar o Trident com o Docker como ambiente de execução de contêineres, tente instalar o Trident com o…​ --in cluster=false bandeira. Isso não usará um pod de instalação e evitará problemas de permissão observados devido ao trident-installer usuário.

  • Use o uninstall parameter <Uninstalling Trident> para limpar após uma execução malsucedida. Por padrão, o script não remove os CRDs criados pelo Trident, tornando seguro desinstalar e instalar novamente, mesmo em uma implantação em andamento.

  • Se você deseja fazer o downgrade para uma versão anterior do Trident, primeiro execute o seguinte comando: tridentctl uninstall comando para remover Trident. Baixe o arquivo desejado "Versão Trident" e instale usando o tridentctl install comando.

  • Após uma instalação bem-sucedida, se um tubo de PVC ficar preso no Pending fase, em execução kubectl describe pvc Pode fornecer informações adicionais sobre o motivo pelo qual a Trident não conseguiu provisionar um PV para este PVC.

Implantação malsucedida do Trident usando o operador

Se você estiver implantando o Trident usando o operador, o status de TridentOrchestrator mudanças de Installing para Installed . Se você observar o Failed Se o operador não conseguir se recuperar sozinho, verifique os registros do operador executando o seguinte comando:

tridentctl logs -l trident-operator

Analisar os registros do contêiner trident-operator pode indicar onde está o problema. Por exemplo, um desses problemas poderia ser a impossibilidade de obter as imagens de contêiner necessárias dos registros upstream em um ambiente isolado da internet (airgapped).

Para entender por que a instalação do Trident não teve sucesso, você deve dar uma olhada em…​ TridentOrchestrator status.

kubectl describe torc trident-2
Name:         trident-2
Namespace:
Labels:       <none>
Annotations:  <none>
API Version:  trident.netapp.io/v1
Kind:         TridentOrchestrator
...
Status:
  Current Installation Params:
    IPv6:
    Autosupport Hostname:
    Autosupport Image:
    Autosupport Proxy:
    Autosupport Serial Number:
    Debug:
    Image Pull Secrets:         <nil>
    Image Registry:
    k8sTimeout:
    Kubelet Dir:
    Log Format:
    Silence Autosupport:
    Trident Image:
  Message:                      Trident is bound to another CR 'trident'
  Namespace:                    trident-2
  Status:                       Error
  Version:
Events:
  Type     Reason  Age                From                        Message
  ----     ------  ----               ----                        -------
  Warning  Error   16s (x2 over 16s)  trident-operator.netapp.io  Trident is bound to another CR 'trident'

Este erro indica que já existe um TridentOrchestrator que foi usado para instalar o Trident. Como cada cluster Kubernetes só pode ter uma instância do Trident, o operador garante que, a qualquer momento, exista apenas uma instância ativa. TridentOrchestrator que pode criar.

Além disso, observar o estado das cápsulas Trident pode muitas vezes indicar se algo está errado.

kubectl get pods -n trident

NAME                                READY   STATUS             RESTARTS   AGE
trident-csi-4p5kq                   1/2     ImagePullBackOff   0          5m18s
trident-csi-6f45bfd8b6-vfrkw        4/5     ImagePullBackOff   0          5m19s
trident-csi-9q5xc                   1/2     ImagePullBackOff   0          5m18s
trident-csi-9v95z                   1/2     ImagePullBackOff   0          5m18s
trident-operator-766f7b8658-ldzsv   1/1     Running            0          8m17s

É possível ver claramente que os pods não conseguem inicializar completamente porque uma ou mais imagens de contêiner não foram obtidas.

Para resolver o problema, você deve editar o TridentOrchestrator CR. Alternativamente, você pode excluir TridentOrchestrator e crie uma nova com a definição modificada e precisa.

Implantação malsucedida do Trident usando tridentctl

Para ajudar a descobrir o que deu errado, você pode executar o instalador novamente usando o-d argumento, que ativará o modo de depuração e ajudará você a entender qual é o problema:

./tridentctl install -n trident -d

Após resolver o problema, você pode limpar a instalação da seguinte forma e, em seguida, executar o programa. tridentctl install Comande novamente:

./tridentctl uninstall -n trident
INFO Deleted Trident deployment.
INFO Deleted cluster role binding.
INFO Deleted cluster role.
INFO Deleted service account.
INFO Removed Trident user from security context constraint.
INFO Trident uninstallation succeeded.

Remova completamente o Trident e os CRDs.

Você pode remover completamente o Trident e todos os CRDs criados, bem como os recursos personalizados associados.

Aviso Isso não pode ser desfeito. Não faça isso a menos que queira uma instalação completamente nova do Trident. Para desinstalar o Trident sem remover os CRDs, consulte"Desinstale o Trident" .
Operador do Trident

Para desinstalar o Trident e remover completamente os CRDs usando o operador Trident :

kubectl patch torc <trident-orchestrator-name> --type=merge -p '{"spec":{"wipeout":["crds"],"uninstall":true}}'
Leme

Para desinstalar o Trident e remover completamente os CRDs usando o Helm:

kubectl patch torc trident --type=merge -p '{"spec":{"wipeout":["crds"],"uninstall":true}}'
<code>tridentctl</code>

Para remover completamente os CRDs após desinstalar o Trident, utilize tridentctl

tridentctl obliviate crd

Falha na desempacotamento de nó NVMe com namespaces de bloco bruto RWX no Kubernetes 1.26

Se você estiver executando o Kubernetes 1.26, a desempacotamento de nós pode falhar ao usar NVMe/TCP com namespaces de bloco bruto RWX. Os cenários a seguir fornecem soluções alternativas para a falha. Alternativamente, você pode atualizar o Kubernetes para a versão 1.27.

O namespace e o pod foram excluídos.

Considere um cenário em que você tenha um namespace gerenciado Trident (volume persistente NVMe) anexado a um pod. Se você excluir o namespace diretamente do backend do ONTAP , o processo de descompactação ficará travado após a tentativa de exclusão do pod. Este cenário não afeta o cluster Kubernetes nem outras funcionalidades.

Solução alternativa

Desmonte o volume persistente (correspondente a esse namespace) do respectivo nó e exclua-o.

dados bloqueados LIFs

 If you block (or bring down) all the dataLIFs of the NVMe Trident backend, the unstaging process gets stuck when you attempt to delete the pod. In this scenario, you cannot run any NVMe CLI commands on the Kubernetes node.
.Solução alternativa
Reinicie o dataLIFS para restaurar a funcionalidade completa.

Mapeamento de namespace excluído

 If you remove the `hostNQN` of the worker node from the corresponding subsystem, the unstaging process gets stuck when you attempt to delete the pod. In this scenario, you cannot run any NVMe CLI commands on the Kubernetes node.
.Solução alternativa
Adicione o `hostNQN` Voltar ao subsistema.

Os clientes NFSv4.2 relatam "argumento inválido" após atualizar o ONTAP quando esperavam que "v4.2-xattrs" estivesse habilitado

Após a atualização do ONTAP, os clientes NFSv4.2 podem relatar erros de "argumento inválido" ao tentar montar exportações NFSv4.2. Este problema ocorre quando o v4.2-xattrs a opção não está habilitada no SVM. .Solução alternativa Habilite o v4.2-xattrs opção no SVM ou atualize para o ONTAP 9.12.1 ou posterior, onde esta opção é habilitada por padrão.