エージェント問題の解決
Helmチャート基準のインストール問題の解決
名前がwhatapである他のHelmリポジトリがある場合
| "whatap" already exists with the same configuration, skipping |
|---|
すでに同じ名前の他のwhatapリポジトリが存在する場合は、次のコマンドを使用して既存のwhatapリポジトリを削除してからインストールを進めてください。
helm repo remove whatap
名前がwhatap-monitoringである他のネームスペースがクラスターにある場合
| Error: INSTALLATION FAILED: Unable to continue with install: Namespace "whatap-monitoring" in namespace "" exists and cannot be imported into the current release |
|---|
クラスターにwhatap-monitoringネームスペースが存在する場合、ユーザーがyamlファイルベースですでにWhaTap Kubernetesエージェントをインストールしているためです。 この場合、次のコマンドにより、既存のwhatap-monitoringネームスペースと関連リソースを削除します。
kubectl delete namespace whatap-monitoring
kubectl delete clusterrolebinding whatap
kubectl delete clusterrole whatap
clusterrole、clusterrolebindingリソースがすでにクラスターにある場合
| Error: INSTALLATION FAILED: Unable to continue with install: ClusterRole "whatap" in namespace "" exists and cannot be imported into the current release |
|---|
クラスターへclusterrole、clusterrolebindingリソースがすでに存在する場合は、次のコマンドでそのリソースを削除します。
kubectl delete clusterrolebinding whatap
kubectl delete clusterrole whatap
whatap-monitoringネーム スペースが使用できない場合
基本的にWhaTap Kubernetesエージェントはwhatap-monitoringネームスペースにインストールされます。 ただし、該当ネームスペースが使用できない場合、またはユーザーが特定のネームスペースを指定する必要がある場合は、次の手順を参考にして、必要なネームスペースにエージェントをインストールします。
事前準備
-
チャートバージョン: whatap/kube 1.7.11以降
次のコマンドでチャートのバージョンを確認します。
helm search repo whatap/kube --versions1.7.11バージョン未満の場合は、次のコマンドでチャートのバージョンをアップデートします。
helm repo update -
Helm 버전: Helm 3以降
インストール手順
使用するネームスペース名を<namespace>に入力し、次のコマンドを実行してエージェントをインストールします。
helm install whatap-kube-agent whatap/kube --create-namespace --namespace <namespace> --set namespaceOverrideEnabled=true --wait -f values.yaml
アップデートと削除
-
アップデート
次のコマンドでエージェントをアップデートします。
helm update whatap-kube-agent whatap/kube --namespace <namespace> --wait -
削除
次のコマンドを使用してエージェントを削除します。
helm uninstall whatap-kube-agent whatap/kube --namespace <namespace>
エージェント起動時に発生する問題の解決
旧型YAMLファイルを通じてWhaTap Kubernetesモニタリングをインストールした場合
| Unrecognized VM option 'UseCGroupMemoryLimitForHeap' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. |
|---|
2022年8月24日以前にダウンロードしたインストールyamlを通じてWhaTapのKubernetesモニタリングをインストールした場合、ノードエージェント(whatap-node-agent) 起動時にエラーが発生し、起動に失敗する場合があります。
原因は以下のとおりです。 2022年8月24日以前にダウンロードしたインストールyamlファイル内UseCGroupMemoryLimitForHeap JVMオプションを使用したノードエージェントの実行スクリプトが含まれています。
WhaTapノードエージェント1.2.0以降(2022年11月21日リリース) バージョンからエージェント内部で使用するJDKがアップグレードされおり、アップグレードされたJDKバージョンは、これ以上UseCGroupMemoryLimitForHeapオプションを提供していません。 2022年8月24日以前にダウンロードしたyamlファイルにWhaTap Kubernetesモニタリングをインストールした状態でノードエージェント1.2.0以降のバージョンを起動する場合、Unrecognized VM option 'UseCGroupMemoryLimitForHeap’メッセージが発生し、起動に失敗します。
解決方法
この問題を解決するために、次のようにKubernetesモニタリングを再インストールします。
-
管理 > エージェントインストール画面で最新のYAMLファイルをダウンロードします。
-
ユーザーKubernetes環境でダウンロードしたyamlファイルを使用してエージェントをインストールしてください。
-
ユーザーKubernetes環境でインストール中にエラーの出力有無を確認してください。
-
WhaTapモニタリングエージェントPodがRunning状態であるかを確認してください。
ノートKubernetes環境及びワークロード > Podリストメニューで確認します。
-
管理 > Kubernetesエージェントリストメニューで、各モニタリングエージェントで発生するログを確認します。
DockerHubイメージpull limitでエージェントが正常にインストールされない場合、
複数のノードで同時に画像をpullする場合、以下のようなエラーが発生し、インストールに失敗することがあります。 問題が発生した場合、以下のコマンドでyamlにイメージを変更して再インストールする必要があります。
エラー照会
kubectl describe pod/<WhaTap k8s エージェントPod名> -n whatap-monitoring
照会結果
> > Failed to pull image "whatap/kube_mon:latest": rpc error: code = Unknown desc = toomanyrequests: You have reached your pull rate limit. Please try again later or log in to increase your rate limit.
この場合、yamlファイル内のDockerHubイメージをpublic.ecr.awsレポに変更した後、再インストールが必要です。
-
エージェントインストール画面でデフォルトインストール用のyamlをダウンロードした場合、以下のコマンドを使用して画像を変更できます。 コマンド実行時、yamlにある既存のdocker Hubイメージがpublic.ecr.awsリポジトリイメージに置き換えられます。
sed -i 's|image: "whatap/kube_mon|image: "public.ecr.aws/whatap/kube_mon|g' kube_agent.yaml
アプリケーション連動問題の解決
コンテナマップにJavaモニタリングデータが表示されない場合
Kubernetes環境でCgroupsの設定や管理方法によっては、特定の状況でコンテナIDを確保できない問題が発生する可能性があります。 WhaTapは、このような状況に対応するために、Kubernetesモニタリングのコンテナとアプリケーション間のマッピングメカニズムを変更しました。 当該変更事項の場合は、WhaTapKubernetesエージェント1.7.7バージョンとJavaエージェント2.2.42バージョンから適用され、Cgroupsの影響でコンテナIDが漏れる問題を解決します。
解決方法
エージェントのアップデート
Kubernetes環境で発生するコンテナIDの識別問題を解決するためには、WhaTapのKubernetesエージェントとAPMが互いにやり取りするデータを正確に識別できるよう、サポートする最新バージョンを使用する必要があります。 クバネティス·エージェントは1.7.7バージョン以降をを設置し、Javaエージェントは2.2.42バージョン以降をインストールします。
現在はJavaエージェントのみサポートしており、他の言語のAPMは今後サポートする予定です。