IBM Cloud Docs
metrics-serverのデバッグ

metrics-serverのデバッグ

仮想プライベート・クラウド クラシック・インフラストラクチャー

以下の症状は、metrics-server リソースを調整する必要があることを示している可能性があります。

  • metrics-server が頻繁に再始動する。

  • 名前空間を削除すると、名前空間が Terminating 状態のままになり、kubectl describe namespace にメトリック API ディスカバリー・エラーを報告する条件が含まれる。

  • kubectl top podskubectl top nodes、その他の kubectl コマンド、または Kubernetes API を使用するアプリケーションが、以下のような Kubernetes エラーをログに記録する。

    The server is currently unable to handle the request (get pods.metrics.k8s.io)
    
    Discovery failed for some groups, 1 failing: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request
    
  • HorizontalPodAutoscalers (HPA) がデプロイメントをスケーリングしない。

  • kubectl get apiservices v1beta1.metrics.k8s.io を実行すると、次のような状況になる。

    NAME                     SERVICE                      AVAILABLE                      AGE
    v1beta1.metrics.k8s.io   kube-system/metrics-server   False (FailedDiscoveryCheck)   139d
    

クラスターには、kube-system 名前空間内の metrics-server デプロイメントによって提供されるメトリック・サービスがあります。 metrics-server リソースの要求と制限は、クラスター内のノード数に基づいており、ワーカー・ノード当たりのポッド数が 30 以下のクラスター用に最適化されています。 メモリー要求が少なすぎると、メモリー不足エラーで失敗し、応答が非常に遅くなる可能性があります。 CPU 要求が小さすぎると、CPU スロットルが原因で、活性プローブおよび作動可能プローブが失敗する可能性があります。

metrics-server での問題は、他の領域でも問題の原因となる可能性があります。 コントロール・プレーンが Konnectivity を使用して metrics-server と通信できない場合、メトリック API は使用できません。 アドミッション制御 Webhook により、コントロール・プレーンがポッド (metrics-server ポッドを含む) を作成できないようにすることができます。

トラブルシューティングを行うには、以下の手順に従ってください。

  1. metrics-server ポッドが存在することを確認します。

    kubectl get pod -n kube-system -l k8s-app=metrics-server
    

    ポッドがリストされない場合は、admission-control Webhook に問題がある可能性があります。 Webhook が壊れているためにクラスター操作が失敗するのはなぜですか?を参照してください。

  2. API サーバーが metrics-server に接続できることを確認します。

    kubectl logs POD -n kube-system -c metrics-server --tail 5
    

    POD を、前述のポッド名に置き換えます。 返されるログの内容は問題ではありません。

    <workerIP>:10250: getsockopt: connection timed out のようなテキストを含むエラー・メッセージを受け取った場合は、kubectl コマンドがタイムアウトになるを参照してください。

  3. 前のステップで問題が示されない場合は、metrics-server のリソースを調整してください。 クラスター・メトリック・プロバイダー・リソースの調整を参照してください。