Drivers CSI: Como coletar registros
Summary: Este artigo mostra como coletar os logs básicos para começar a solucionar um problema da família de módulos de armazenamento de contêineres (CSM) da Dell: Drivers da interface de armazenamento de contêineres (CSI) da Dell ...
Instructions
Coleta de logs do driver CSI
Isso consiste em habilitar a depuração, reproduzir o problema, se possível, coletar logs para o controlador do driver CSI e coletar logs do pod do nó.
kubectl comandos podem ser substituídos por "oc" em ambientes OpenShift.
Habilite os logs de depuração para o controlador do driver CSI e os pods de nó.
Consulte o recurso "Configuração dinâmica de log" na documentação: https://dell.github.io/csm-docs/docs/csidriver
Determine os nomes dos pods do controlador e dos nós.
Use o botão kubectl get pods Comando para listar os pods no namespace do driver.
# kubectl get pods -n isilon NAME READY STATUS RESTARTS AGE isilon-controller-66d7d9d7c-6j6f4 6/6 Running 0 11m isilon-node-9wngk 2/2 Running 0 27d
Coletar logs do controlador do driver CSI.
Os registros devem ser coletados para os pods do controlador. Colete logs de todos os controladores usando o kubectl logs . Certifique-se de ser aprovado no contêiner relevante, como o driver.
kubectl logs -n <namespace> <controller> <container> > <file name>
Exemplo:
kubectl logs -n isilon isilon-controller-66d7d9d7c-6j6f4 driver > isilon-controller-66d7d9d7c-6j6f4_driver.log
Repita para todos os contêineres necessários relacionados ao seu problema (afixador, snapshotter, provisionador, driver, redimensionador e assim por diante). Certifique-se de alterar o nome do arquivo de saída para corresponder ao nome do controlador e ao contêiner.
Coletar logs do pod do nó do driver CSI.
Os logs também devem ser coletados para os nós de trabalho. Isso poderia incluir um nó ou vários nós se um pod com problema estivesse se movendo de um nó para outro. Isso coleta os logs de cada um dos contêineres no pod de nós do driver CSI (driver, registrador e assim por diante):
kubectl logs -n <namespace> <worker node> > <filename>.txt
Exemplo:
kubectl logs -n isilon isilon-node-9wngk driver > isilon-node-9wngk_driver.txt kubectl logs -n isilon isilon-node-9wngk registrar > isilon-node-9wngk_registrar.txt
Alternativas
Script
: gera todos os logs do controlador individualmente (altere o namespace "isilon" em 2 lugares, se necessário) e adiciona contêineres conforme necessário.
for x in $(kubectl get pods -n isilon | grep controller | awk '{print $1}'); do for i in attacher provisioner driver snapshotter;do kubectl logs -n isilon $x -c $i > $x-$i.txt;done;done
Isso coleta logs de nó (altere o namespace "isilon" em dois lugares, se necessário) e adiciona contêineres conforme necessário.
for x in $(kubectl get pods -n isilon | grep node | awk '{print $1}'); do for i in driver registrar;do kubectl logs -n isilon $x -c $i > $x-$i.txt;done;done
Opção
DesdeA coleta de todos os registros pode gerar mais dados do que o necessário. O "--since" pode ser usada para coletar por um período de tempo conhecido. Essa opção é seguida por "5 s", "5 m" ou "5 h" por segundos, minutos e horas, dependendo de até onde a coleta de logs deve ir. Isso também é útil se o problema foi reproduzido, colete os últimos 5 minutos de logs (ou a quantidade de tempo que levou para reproduzir):
Exemplo:
kubectl logs -n isilon isilon-node-xxx driver --since 5m > isilon-node-xxx_driver.txt
Todos os contêineres
Na solução de problemas, colete os logs separadamente, conforme descrito acima. Às vezes, substituindo o nome do contêiner por "--all-containers" para coletar todos os registros dos contêineres do pod pode ser útil.
Exemplo:
kubectl logs -n isilon isilon-node-xxx --all-containers> isilon-node_driver.txt
Outras informações obrigatórias:
Container Orchestrator (K8s, OpenShift etc.) e versão
versão do Kubernetes e versão
do driver tipo
Versão do array ou microcódigo
Sistema operacional e versão dos nós K8
Additional Information
Para listar as implementações:
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
csi-powerscale isilon-controller 1/1 1 1 14d powermax-controller 1/1 1 1 26d
unity-controller 1/1 1 1 47d
vxflexos-controller 2/2 2 107d
-Nome:
X_CSI_DEBUG valor: "true"
Para o Isilon, o conteúdo da API REST do OneFS também deve ser registrado na depuração definindo como 0 (true):
-Nome:
X_CSI_VERBOSE valor: "0"Habilitar
registros de depuração do nó do driver CSI editando o conjunto de daemons.
A depuração é habilitada editando o daemonset.
Para listar os daemonsets:
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
csi-powerscale isilon-node 2 2 2 2 14d
powermax-node 2 2 2 2 26d
unity unity-node 2 2 2 2 47d
vxflexos-node 2 2 2 2 107d
-Nome:
X_CSI_DEBUG valor: "verdadeiro"
Para o Isilon, o conteúdo da API REST do OneFS também deve ser registrado na depuração definindo como 0 (true):
-Nome:
X_CSI_VERBOSE valor: "0"
Como os registros de depuração não são retroativos, reproduza o problema, se possível, antes de coletar registros.