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

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

最終更新日:Nov 14, 2024

kube-controller-managerは、ノードを管理するノードコントローラー、StatefulSetsを管理するStatefulSetコントローラー、Deploymentを処理するDeploymentコントローラーなど、さまざまなKubernetesコントローラーを管理するために使用される制御プレーンコンポーネントです。 このトピックでは、kube-controller-managerのメトリックについて説明します。 このトピックでは、kube-controller-managerのダッシュボードの使用方法についても説明します。

条件

ワークキュー

ワークキューの説明

ほとんどの場合、kube-controller-managerによって管理されるコントローラーは、ワークキューを使用してリソースオブジェクトを安全に同時に更新します。 コントローラは、ノードコントローラ、StatefulSetコントローラ、及び配置コントローラを含む。 ポッドの作成、更新、削除などの新しいイベントが発生するたびに、対応するコントローラがイベント通知を受信し、ポッド名やポッドがデプロイされている名前空間などの関連するリソース識別子をワークキューに追加します。 コントローラは、そのワークサイクル中にワークキューからリソース識別子を連続的に抽出し、関連するロジックに基づいてリソースを処理する。

使用上の注意

ダッシュボードアクセス

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

メトリクス

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

メトリック

タイプ

説明

workqueue_adds_total

Counter

ワークキューによって処理された追加イベントの数。

workqueue_depth

ゲージ

ワークキューの長さ。 ワークキューの長さが長期間にわたって高いレベルのままである場合、コントローラはワークキュー内のタスクを適時に処理することができず、タスクが蓄積される。

workqueue_queue_duration_seconds_bucket

ヒストグラム

タスクがワークキューに残っている期間。 バケット閾値は、セット {10 -8、10 -7、10 -6、10 -5、10 -4、10 -3、10 -2、10 -1、1、10} として定義される。 単位は秒です。

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: メモリ使用率。

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

ダッシュボードのquantileおよびintervalパラメーターを変更できます。 quantileパラメーターは要求分位を示し、intervalパラメーターはPrometheus Query Language (PromQL) サンプリング間隔を示します。 ダッシュボードはメトリクスとPromQLに基づいて生成されます。 次のセクションでは、kube-controller-managerのダッシュボードの可観測性と機能について説明します。

ワークキュー

可视性 kcm1

機能

ダッシュボード

PromQL

説明

ワークキューのエントリ率

sum(rate(workqueue_adds_total{job="ack-kube-controller-manager"}[$interval])) by (name)

指定された間隔でワークフローに追加される追加イベントの数。

ワークキューの深さ

sum(rate(workqueue_depth{job="ack-kube-controller-manager"}[$interval])) by (name)

指定された間隔でのワークキューの長さの変更。

ワークキュー処理の遅延

histogram_quantile($quantile, sum(rate(workqueue_queue_duration_seconds_bucket{job="ack-kube-controller-manager"}[5m])) by (name, le))

ワークキュー内のイベントの期間。

リソース

可视性 kcm2

機能

ダッシュボード

PromQL

説明

メモリ使用量

memory_utilization_byte{container="kube-controller-manager"}

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

CPU使用率

cpu_utilization_core{container="kube-controller-manager"}* 1000

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

Kube API

可视性 kcm3

機能

ダッシュボード

PromQL

説明

Kube APIリクエストQPS

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

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

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

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

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

Kube APIリクエストの遅延

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

kube-controller-managerによって送信されたリクエストとkube-apiserverによって返されたレスポンスの間の時間間隔。 遅延は、動詞とURLに基づいて計算されます。

関連ドキュメント

メトリックの詳細、ダッシュボードの使用に関する注意事項、および他の制御プレーンコンポーネントの一般的なメトリック異常のトラブルシューティング方法に関する提案については、[metrics of kube-apiserver][Metrics of etcd][Metrics of kube-scheduler][Metrics of cloud-controller-manager] を参照してください。