問題点
New RelicのKubernetes インテグレーションのインストール手順Kubernetes New Relicが完了しました。New アカウントに データが表示されていますが、コントロール プレーン コンポーネントからのデータはありません。
コントロールプレーンデータが欠落している場合(たとえばK8sSchedulerSample
)、最初に行うことは、コントロールプレーンコンポーネントの詳細なログを確認することです。詳細ログを有効にする方法を読む
可能性としては、自動検出がクラスター内で最も一般的なラベルを利用してコントロールプレーンポッドを見つけようとすることがあります。単一のコンポーネントのポッドが見つからない場合でも、データの欠落を回避できます。このシナリオでは、次のようなログが表示されます。
time="2022-06-21T12:21:25Z" level=debug msg="Autodiscovering pods for \"scheduler\""time="2022-06-21T12:21:25Z" level=debug msg="0 pods found with labels \"tier=control-plane,component=kube-scheduler\""time="2022-06-21T12:21:25Z" level=debug msg="No pod found for \"scheduler\" with labels \"tier=control-plane,component=kube-scheduler\""time="2022-06-21T12:21:25Z" level=debug msg="0 pods found with labels \"k8s-app=kube-scheduler\""time="2022-06-21T12:21:25Z" level=debug msg="No pod found for \"scheduler\" with labels \"k8s-app=kube-scheduler\""time="2022-06-21T12:21:25Z" level=debug msg="0 pods found with labels \"app=openshift-kube-scheduler,scheduler=true\""time="2022-06-21T12:21:25Z" level=debug msg="No pod found for \"scheduler\" with labels \"app=openshift-kube-scheduler,scheduler=true\""time="2022-06-21T12:21:25Z" level=debug msg="No \"scheduler\" pod has been discovered"この場合、Helm チャート値の
controlplane.config.[component].autodiscover[].selector
構成を使用して検出動作を変更できます。 コントロール プレーン コンポーネントの詳細については、こちらをご覧ください。コントロールプレーンコンポーネントが見つかったが、エンドポイントでの認証が失敗した可能性もあります。このシナリオでは、次のようなログが表示されます。
time="2022-06-21T15:54:52Z" level=debug msg="Endpoint \"https://localhost:10257\" probe failed, skipping: http request failed with status: 403 Forbidden"この場合、ヘルムチャート値の
controlplane.config.[component].autodiscover[].endpoints[].auth
構成を使用して、各エンドポイントの認証動作を変更できます。統合のコントロールプレーンコンポーネントがすべてのマスターノードで実行されていない可能性もあります。
あなたはその実行を再確認することができます:
kubectl get pod -n <NEWRELIC_NAMESPACE> -l app.kubernetes.io/component=controlplane -o wideNewrelicモニタリングインスタンスなしでノード上で実行されているモニタリングしたいコントロールプレーンポッドがある場合は、必要に応じてヘルムチャート値の
controlplane.affinity
、controlplane.nodeSelector
、およびcontrolplane.tolerations
を変更できます。
コントロールプレーンコンポーネントがCrashLoopBackOffに入るコントロールプレーンポッドを自動検出またはスクレイピングしない場合。
前のセクションで説明したように、必要に応じて自動検出の動作と認証方法を変更できます。
一方、そのデータに関心がない場合は、ヘルムチャート値にcontrolplane.enabled=false
を設定することで、コントロールプレーンコンポーネントを無効にすることができます。