AutoTrace Webhook のトラブルシューティング
Kubernetes のリソースで、 Instana の AutoTrace Webhookが機能していないことに気付いた場合は、以下の手順に従ってトラブルシューティングを行ってください
Instana の AutoTrace Webhookがリクエストを受信していることを確認する
Instana の AutoTrace ウェブフックがリクエストを受信していることを確認するには、次のコマンドを実行してポッド instana-autotrace-webhook のログを確認してください:
kubectl logs -l app.kubernetes.io/name=instana-autotrace-webhook -n instana-autotrace-webhook
正常に動作している環境では、以下のログを確認できます:
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'
このようなログが表示されない場合は、 Kubernetes の設定に問題がある可能性があります。 以下の項目を確認して、トラブルシューティングを続けてください。
kube-apiserver のログを確認する
のログを確認してください kube-apiserver。 これらのログは、 Instana AutoTrace の Webhook が起動されたかどうかを報告し、実行結果に関する情報を提供します。
AutoTrace のWebhookが期待通りに動作していないことが判明した場合は、よく見られる問題について、以下のトラブルシューティング手順に従ってください。
一般的な問題のトラブルシューティング
kube-apiserver と instana-autotrace-webhook ポッドの間のネットワーク接続がない
最もよくある問題は、ポッド instana-autotrace-webhook を実行しているワーカーノードに接続できない kube-apiserver ことです。 この問題は、セキュリティポリシーが原因で、「 Instana 」の AutoTrace Webhook が機能しなくなっている可能性があります。
この問題を解決するには、ポッド instana-autotrace-webhook に kube-apiserver アクセスできるようネットワーク設定を変更してください。 ネットワークセキュリティポリシーを見直し、 kubeapi-server が接続を開始し、からの応答を受け取れるように instana-autotrace-webhookしてください。 Instana この問題の解決方法について直接的な指針を示すことはできません。解決策は、お客様のポリシーや適用方法によって異なるためです。
kube-apiserver と instana-autotrace-webhook ポッドが TLS セッションのネゴシエーションを実行できない
場合によっては、暗号化に関する制限( TLS で使用可能なアルゴリズムに関するもの)により、pod instana-autotrace-webhook との TLS セッションのネゴシエーションが行えない kube-apiserver ことがあります。
この問題を解決するには、 サポートチケットを開き、クラスタがサポートしている暗号化アルゴリズムについて IBM のサポートチームまでお知らせください。
メモリーが不十分です
AutoTrace のWebhookは、環境変数 LD_PRELOAD を使用して、他のライブラリよりも先に技術ライブラリを読み込むことで、アプリケーションを構成します。 このアプローチでは、プリロードされたライブラリがアプリケーションのプロセスに読み込まれるため、追加のメモリを使用します。 その結果、これに対応するためにコンテナのメモリ制限を引き上げる必要があるかもしれません。
ポッドに計測ライブラリを読み込むのに十分なメモリがない場合、ポッドは以下のエラーが発生して再起動ループに陥ることがあります:
OOMKilledCrashLoopBackOff
再起動ループを解決するには、アプリケーションの計測に必要なメモリ容量の増加に対応するため、デプロイメントのメモリ制限を引き上げてください。 フィールド spec.template.spec.containers[x].resources.limits.memory を更新することで、メモリ制限を増やすことができます。 具体的には、個々のトレーサーのメモリオーバーヘッドについては、以下の表を参照してください。
| テクノロジー | 追加メモリが必要 |
|---|---|
| Ruby | 25 MB |
| ネットコア | 100 MB |
| NGINX | 100 MB |
| Node.js | 70 MB |
| Python | 25 MB |