Solução de problemas do webhook AutoTrace

Se você perceber que o webhook Instana AutoTrace não está funcionando em seus recursos Kubernetes, solucione os problemas seguindo estas etapas:

Verificando se o webhook Instana AutoTrace está recebendo solicitações

Para verificar se o webhook Instana AutoTrace está recebendo solicitações, verifique os logs do instana-autotrace-webhook pod executando o seguinte comando:

kubectl logs -l app.kubernetes.io/name=instana-autotrace-webhook -n instana-autotrace-webhook

Em uma instalação em funcionamento, você pode ver os seguintes registros:

14:41:37.590 INFO  |- [AdmissionReview 48556a1a-7d55-497b-aa9c-23634b089cd1] Applied transformation DefaultDeploymentTransformation to the Deployment 'test-netcore-glibc/test-apps'
14:41:37.588 INFO  |- [AdmissionReview 1d5877cf-7153-4a95-9bfb-de0af8351195] Applied transformation DefaultDeploymentTransformation to the Deployment 'test-nodejs-12/test-apps'

Se você não encontrar esses registros, sua configuração do Kubernetes pode estar com algum problema. Continue a solucionar o problema verificando as seções a seguir.

Verificando os registros do kube-apiserver

Verifique os registros do seu kube-apiserver. Esses registros informam se o webhook Instana AutoTrace está sendo iniciado e fornecem informações sobre o resultado da execução.

Se você identificar que o webhook AutoTrace não está funcionando conforme o esperado, use as seguintes etapas de solução de problemas para os problemas comumente observados.

Resolução de problemas comuns

Sem conectividade de rede entre o kube-apiserver e os pods instana-autotrace-webhook

O problema mais comum é que o kube-apiserver não consegue acessar os nós de trabalho que estão executando os instana-autotrace-webhook pods. Esse problema pode ser causado pelas políticas de segurança, que impedem o funcionamento do webhook Instana AutoTrace.

Para resolver esse problema, modifique suas configurações de rede para que kube-apiserver possa acessar os instana-autotrace-webhook pods. Revise suas políticas de segurança de rede para garantir que kubeapi-server possa iniciar conexões e receber respostas de instana-autotrace-webhook. Instana não podemos fornecer orientações diretas para resolver essa questão, pois as soluções variam de acordo com sua política e mecanismos de aplicação.

Pods kube-apiserver e instana-autotrace-webhook não podem negociar uma sessão TLS

Às vezes, as restrições de criptografia (em termos de quais algoritmos podem ser usados para TLS ) impedem kube-apiserver a negociação de uma sessão TLS com o instana-autotrace-webhook pod.

Para resolver esse problema, abra um ticket de suporte e informe ao suporte IBM quais algoritmos de criptografia seus clusters suportam.

Memória insuficiente

O webhook AutoTrace implementa aplicativos usando variáveis LD_PRELOAD de ambiente para carregar bibliotecas de tecnologia antes de quaisquer outras bibliotecas. Essa abordagem utiliza memória adicional, pois as bibliotecas pré-carregadas são carregadas no processo do aplicativo. Como resultado, pode ser necessário aumentar o limite de memória do contêiner para acomodar isso.

Se o pod não tiver memória suficiente para carregar as bibliotecas de instrumentação, ele poderá entrar em um loop de reinicialização com os seguintes erros:

  • OOMKilled
  • CrashLoopBackOff

Para corrigir o loop de reinicialização, aumente o limite de memória em sua implantação para compensar o aumento da necessidade de memória para a instrumentação do aplicativo. Você pode aumentar o limite de memória atualizando o spec.template.spec.containers[x].resources.limits.memory campo. Especificamente, consulte a tabela a seguir para obter informações sobre a sobrecarga de memória do traçador individual.

Tecnologia Memória adicional necessária
Ruby 25 MB
Netcore 100 MB
NGINX 100 MB
Node.js 70 MB
Python 25 MB