すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:kube-schedulerのメトリクスとダッシュボードの使用

最終更新日:Nov 14, 2024

kube-schedulerは、Kubernetesクラスターのデフォルトスケジューラです。 このコンポーネントは、適切なクラスターノードで実行するポッドのスケジューリングを担当します。 このトピックでは、kube-schedulerのメトリックについて説明します。 このトピックでは、kube-schedulerのダッシュボードの使用方法と、一般的なメトリック異常のトラブルシューティング方法についても説明します。

使用上の注意

ダッシュボードアクセス

詳細については、「ACK Proクラスターでの制御プレーンコンポーネントダッシュボードの表示」をご参照ください。

メトリクス

メトリックは、コンポーネントのステータスおよびパラメータ設定を示すことができる。 次の表に、kube-schedulerでサポートされているメトリックを示します。

メトリック

タイプ

説明

scheduler_scheduler_cache_size

ゲージ

スケジューラーキャッシュ内のノード、ポッド、および想定ポッドの数。

scheduler_pending_pods

ゲージ

保留中のポッドの数。 保留中のポッドは、次のタイプで構成されます。

  • unschedulable: unschedulableポッド。

  • backoff: バックオフキューポッド。特定の理由でスケジュールに失敗したポッドです。

  • active: アクティブなキューポッド。スケジュールする準備ができているポッドです。

scheduler_pod_scheduing_attempts_bucket

ヒストグラム

スケジューラがポッドをスケジュールしようとした回数。 バケット閾値は、{1、2、4、8、16} の集合として定義される。

memory_utilization_byte

ゲージ

メモリ使用量。 単位はバイトです。

cpu_utilization_core

ゲージ

使用されるCPU容量。 単位: コア。

rest_client_requests_total

Counter

ステータスコード、メソッド、およびホストに基づいて計算されたHTTPリクエストの数。

rest_client_request_duration_seconds_bucket

ヒストグラム

動詞とURLに基づいて計算されたHTTP応答レイテンシ。

説明

次のリソース使用率メトリックは非推奨です。 これらのメトリックに依存するアラートとモニタリングデータをできるだけ早く削除します。

  • cpu_utilization_ratio: CPU使用率。

  • memory_utilization_ratio: メモリ使用率。

ダッシュボードの使用状況ノート

ダッシュボードは、メトリクスとPrometheus Query Language (PromQL) に基づいて生成されます。 次のセクションでは、kube-schedulerのダッシュボードの可観測性と機能について説明します。

kube-apiserverのメトリックが異常になった場合は、以下のセクションで説明するメトリックの異常が存在するかどうかを確認します。 次のセクションで説明されていないメトリック異常が発生した場合、チケットを起票します。

概要

観察可能性

image

機能

メトリック

PromQL

説明

スケジューラ保留ポッド

scheduler_pending_pods{job="ack-scheduler"}

保留中のポッドの数。 保留中のポッドは、次のタイプで構成されます。

  • unschedulable: unschedulableポッド。

  • backoff: バックオフキューポッド。特定の理由でスケジュールに失敗したポッドです。

  • active: アクティブなキューポッド。スケジュールする準備ができているポッドです。

ポッドを正常にスケジュールするスケジューラの試行数

histogram_quantile($quantile, sum(rate(scheduler_pod_scheduling_attempts_bucket{job="ack-scheduler"}[$interval])) by (pod, le))

kube-schedulerがポッドをスケジュールしようとした回数。 バケット閾値は、{1、2、4、8、16} の集合として定義される。

スケジューラキャッシュデータ統計

  • scheduler_scheduler_cache_size{job="ack-scheduler",type="nodes"}

  • scheduler_scheduler_cache_size{job="ack-scheduler",type="pods"}

  • scheduler_scheduler_cache_size{job="ack-scheduler",type="assumed_pods"}

スケジューラーキャッシュ内のノード、ポッド、および想定ポッドの数。

リソース

可视性 schedule2

機能

メトリック

PromQL

説明

メモリ使用量

memory_utilization_byte{container="kube-scheduler"}

メモリ使用量。 単位はバイトです。

CPU使用率

cpu_utilization_core{container="kube-scheduler"}* 1000

使用されるCPU容量。 単位: ミリコア。

Kube API

可视性 schedule3

機能

メトリック

PromQL

説明

Kube APIリクエストQPS

  • sum(rate(rest_client_requests_total{job="ack-scheduler",code=~ "2 .."}[$interval])) by (method,code)

  • sum(rate(rest_client_requests_total{job="ack-scheduler",code=~ "3 .."}[$interval])) by (method,code)

  • sum(rate(rest_client_requests_total{job="ack-scheduler",code=~ "4 .."}[$interval])) by (method,code)

  • sum(rate(rest_client_requests_total{job="ack-scheduler",code=~ "5 .."}[$interval])) by (method,code)

kube-schedulerからkube-apiserverに送信されたHTTPリクエストの1秒あたりの数。 1秒あたりのクエリ (QPS) の値は、ステータスコード、メソッド、およびホストに基づいて計算されます。

Kube APIリクエストのレイテンシ

histogram_quantile($quantile, sum(rate(rest_client_request_duration_seconds_bucket{job="ack-scheduler"}[$interval])) by (verb,url,le))

kube-schedulerによって送信された要求とkube-apiserverによって返された応答との間の時間間隔。 レイテンシは、動詞とURLに基づいて計算されます。

一般的なメトリック異常

kube-apiserverのメトリックが異常になった場合は、以下のセクションで説明するメトリックの異常が存在するかどうかを確認します。 次のセクションで説明されていないメトリック異常が発生した場合、チケットを起票します。

スケジューラポッド

通常のケース

異常

異常な説明

提案

スケジューラポッドの数は1以上です。

スケジューラーポッドの数は0です。

クラスターにスケジューラーポッドが存在しません。

  • kube-schedulerに対応するDeploymentまたはStatefulSetが存在するかどうかを確認します。

  • スケジューラーポッドが他のユーザーによって手動で終了されているかどうかを確認します。

スケジューラ保留ポッド

通常のケース

異常

異常な説明

提案

ポッドスケジューリングは一貫して遅い。

  • スケジュール不可能なポッドの数は継続的に増加します。

  • スケジュールできないポッドの数は、他のポッドが終了しても減少しません。

クラスター内のポッドのリソース要求が適切に構成されていないか、クラスターに十分なノードがありません。

  • クラスターにポッドスケジューリングに十分なノードがあるかどうかを確認します。

  • 不適切なポッドのアフィニティと属性が設定されているかどうかを確認します。

Schedulerがポッドをスケジュールするのに成功した回数

通常のケース

異常

異常な説明

提案

ポッドは、数回試行した後にノードにスケジュールできます。

数回試行した後、ポッドのスケジュールに失敗します。

クラスター内のポッドのリソース要求が適切に構成されていないか、クラスターに十分なノードがありません。

  • クラスターにポッドスケジューリングに十分なノードがあるかどうかを確認します。

  • 不適切なポッドのアフィニティと属性が設定されているかどうかを確認します。

関連ドキュメント

メトリクスの詳細、ダッシュボードの使用に関する注意事項、および他のコントロールプレーンコンポーネントの一般的なメトリクス異常のトラブルシューティング方法の提案については、metrics of kube-apiserverMetrics of etcdMetrics of controller-managerMetrics of cloud-controller-manager