Solução de problemas de implantação do driver BeeGFS CSI
Ao solucionar problemas com a implantação do driver CSI do BeeGFS, certifique-se de que:
-
Todos os pré-requisitos foram atendidos, incluindo a instalação e configuração do cliente BeeGFS.
-
O driver CSI do BeeGFS foi implantado usando as sobreposições corretas.
-
A implementação foi verificada e quaisquer erros — como contaminação de nós ou swap ativado — foram corrigidos.
-
Aplicações de exemplo foram implementadas e validadas para confirmar a funcionalidade.
Para obter informações detalhadas sobre a resolução de problemas, consulte o"Driver CSI BeeGFS GitHub" .
Configuração do Kubernetes - Cenários de Erro Comuns
Exemplo de erro ao tentar recuperar todos os pods em execução no nó:
kubectl get pods
Exemplo de saída de erro:
root@node@1:~# kubectl get pods E0829 14:30:28.644318 5617 memcache.go:265)] "Unhandled Error" err="couldn't get current server API group list: Get \"https://XX.YYY.ZZ.CC:644 3: connect: connection refused" ... The connection to the server XX.YYY.ZZ.CC:6443 was refused - did you specify the right host or port?
Existem diversas áreas-chave a serem investigadas ao abordar questões como essas. Recomenda-se começar examinando cada área listada abaixo.
Erro no containerd
Verifique o status do daemon containerd:
systemctl status containerd
Resultado esperado:
root@node01:/home/user_id/beegfs-csi-driver# systemctl status containerd
o containerd.service - containerd container runtime
Loaded: loaded (/lib/systemd/system/containerd.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: https://containerd.io
Se o daemon não estiver em execução(Active: inactive (dead) ), reinicie-o. Se o sistema permanecer inativo após a reinicialização, verifique os registros do sistema em busca de erros:
systemctl restart containerd
journalctl -u containerd
Erro no kubelet
Verifique o status do serviço kubelet:
systemctl status kubelet
Resultado esperado:
root@node01:/home/user_id/beegfs-csi-driver# systemctl status kubelet
o kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: activating (auto-restart) (Result: exit-code) since Fri 2025-08-29 14:34:25 CDT; 6s ago
Docs: https://kubernetes.io/docs/
Process: 6636 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG ARGS $KUBELET CONFIG ARGS $KUBELET KUBEADM ARGS
$KUBELET_EXTRA ARGS (code=exited, status=1/FAILURE)
Main PID: 6636 (code=exited, status=1/FAILURE)
Se o serviço não estiver em execução, reinicie-o:
systemctl restart kubelet
Se o problema persistir, verifique o syslog em busca de erros:
tail -f /var/log/syslog | grep kubelet
Problema de troca
Se você encontrar erros relacionados a "swap", desative o swap e reinicie o kubelet.
swapoff -a
systemctl restart kubelet
Resultado esperado:
root@node01:/home/user_id/beegfs-csi-driver# systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: active (running) since Tue 2025-10-07 18:11:05 CDT; 5 days ago
Docs: https://kubernetes.io/docs/
Main PID: 1302401 (kubelet)
Tasks: 58 (limit: 231379)
Memory: 63.0M
CGroup: /system.slice/kubelet.service
└─1302401 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml conta>
|
|
A partição de swap geralmente é ativada por padrão durante a instalação do sistema operacional e é listada em /etc/fstab O Kubernetes não suporta a execução com swap ativado. Para impedir que a memória swap seja reativada após uma reinicialização, comente todas as entradas de swap em /etc/fstab .
|
Solução de problemas de configuração do cliente BeeGFS e do Helperd
-
Analise a configuração em
/etc/beegfs/beegfs-client.conf.Por padrão, a autenticação de conexão BeeGFS deve estar ativada para ambientes seguros. Garanta o
connDisableAuthenticationA flag está definida comofalsee o caminho correto para oconnAuthFileé especificado:connDisableAuthentication = false connAuthFile=/etc/beegfs/XXX.X.XX.X_connAuthFileSe você intencionalmente deseja permitir que o sistema de arquivos BeeGFS se conecte sem autenticação, defina connDisableAuthentication = truee remova ou comente oconnAuthFileparâmetro. -
Verifique o endereço IP do serviço de gerenciamento em
sysMgmtdHostO parâmetro está configurado corretamente. -
Atualize os caminhos para
connRDMAInterfacesFileeconnInterfacesFile. Esses arquivos especificam as interfaces de rede usadas para armazenamento ou comunicação entre nós. Por exemplo:ibs1f0 ibs1f1 -
Atualize o caminho para o
connAuthFileparâmetro se a autenticação estiver habilitada.Exemplo de configuração:
connDisableAuthentication = false connAuthFile=/etc/beegfs/XXX.X.XX.X_connAuthFile connClientPortUDP=8004 connMaxInternodeNum=128 connMaxConcurrentAttempts=4 connRDMABufNum=36 connRDMABufSize=65536 tuneFileCacheType=native tuneFileCacheBufSize=2097152 connFallbackExpirationSecs=90 connCommRetrySecs=600 sysSessionChecksEnabled=False connRDMAInterfacesFile=/etc/beegfs/XXX.X.XX.X_8004_connInterfaces.conf sysMountSanityCheckMS=11000 connRDMAKeyType=dma sysMgmtdHost=XXX.X.XX.X connInterfacesFile=/etc/beegfs/XXX.X.XX.X_8004_connInterfaces.conf
-
Analise a configuração em
/etc/beegfs/beegfs-helperd.conf.Assim como na configuração do cliente, a autenticação de conexão deve estar ativada por padrão. Garanta o
connDisableAuthenticationA flag está definida comofalsee o caminho correto para oconnAuthFileé especificado:connDisableAuthentication = false connAuthFile=/etc/beegfs/XXX.X.XX.X_connAuthFileSe você intencionalmente deseja permitir que o sistema de arquivos BeeGFS se conecte sem autenticação, defina connDisableAuthentication = truee remova ou comente oconnAuthFileparâmetro.Exemplo de configuração do helperd:
# --- Section 1: [Settings] --- # connDisableAuthentication = false connAuthFile = /etc/beegfs/XXX.X.XX.X_connAuthFile connHelperdPortTCP = 8006 connPortShift = 0 logNoDate = false logNumLines = 50000 logNumRotatedFiles = 5 logStdFile = /var/log/beegfs-client.log runDaemonized = true tuneNumWorkers = 2
Solução de problemas do controlador BeeGFS
Após a implantação das sobreposições, você poderá ver alguns recursos com o status PENDING na saída do comando kubectl get all.
root@node01:/home/user_id/beegfs-csi-driver# kubectl get all -n beegfs-csi NAME READY STATUS RESTARTS AGE pod/csi-beegfs-controller-0 0/3 Pending 0 59s
Cápsulas em Pending O status pode ser causado por contaminação de nós, restrições de recursos, imagens ausentes ou requisitos de agendamento não atendidos. Consulte os eventos e registros do pod para obter mais detalhes. Se o status aparecer como mostrado acima, prossiga para inspecionar os pods criados usando o comando describe.
kubectl describe pod csi-beegfs-controller-0 -n beegfs-csi
Se você vir erros de extração de imagem ou pods travados em ImagePullBackOff Verifique se todas as imagens necessárias estão presentes no containerd (offline) ou acessíveis a partir do registro (online). Consulte:
kubectl describe pod <pod-name> -n beegfs-csi | grep -i image
Verificando os registros do pod
Se um pod não estiver iniciando ou estiver em um CrashLoopBackOff Para obter mais detalhes, verifique os registros do estado:
kubectl logs <pod-name> -n beegfs-csi
Se você encontrar erros relacionados a "contaminação não tolerada" (visíveis na saída do comando kubectl describe), como os abaixo:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 84s default-scheduler 0/1 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/disk-pressure: }. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling.
Remova a contaminação do nó usando o seguinte comando:
kubectl taint nodes node01 node-role.kubernetes.io/control-plane:NoSchedule-
Resultado esperado:
root@node01:/home/user_id/beegfs-csi-driver# kubectl taint nodes node01 node-role.kubernetes.io/control-plane:NoSchedule- error: taint "node-role.kubernetes.io/control-plane:NoSchedule" not found
Após remover a mancha, reaplique as sobreposições. Isso deve resolver o problema:
kubectl apply -k deploy/k8s/overlays/default