Announcement

このページはEnglishDeutschEspañolFrançaisItalianoPortuguêsでもご覧いただけます。

PerfectScaleに「退避できないPod」の推奨機能が登場

ノードのスケールダウンを妨げる設定を見つけて修正

By Jacek Wysocki

·

Shipped by

AmitAbrorAndreiMireyaIraJacek

クラスターオートスケーラーは、使用率の低いノードを削除しようとします。しかし、多くの場合それができません。制限の厳しいPodDisruptionBudget、do-not-evictアノテーション、ローカルストレージ、コントローラー参照の欠如——こうした要素を持つPodが1つあるだけで、ノード全体がその場に固定されてしまいます。ノードはほぼアイドル状態のまま稼働し続け、そのコストを払い続けることになります。

こうしたブロッカーは見つけにくいものです。数十のnamespaceにまたがるワークロードのマニフェストの中に潜んでおり、オートスケーラーのログを見ても、どのPodが原因なのか、いくらコストがかかっているのかはほとんどわかりません。多くのチームは、ライトサイジングを行ったのにクラスターコストが下がらなくなった原因を調査する中で、1つずつ発見していくのが実情です。KarpenterのコンソリデーションもCluster Autoscalerのスケールダウンも、同じ限界に突き当たります。すべてのPodが退避に同意するノードしか削除できないのです。

新機能

PerfectScaleが退避できないPodを検出し、修正方法まで具体的に提示するようになりました。

PerfectScaleがノードのコンソリデーションを妨げているPodを検出すると、現在の設定と推奨される変更を比較したYAML差分を生成します。ワンクリックでコピーして、マニフェストに適用できます。

media

各推奨事項には以下が含まれます。

  • 退避を妨げている設定そのものと、変更内容のわかりやすい説明
  • コストへの影響度に基づくランク付け。高コストなブロッカーから優先的に修正できます
  • 信頼度とリスクレベル。安全に適用できるものと確認が必要なものが一目でわかります
  • そのままコピーして使えるYAML差分

ブロッカーの中には意図的なものもあります。厳格なPDBを設定したステートフルなデータベースPodは、まさに望みどおりの構成かもしれません。「Mute for Workload」をクリックすると、PerfectScaleはそのワークロード内の退避できないPodすべてについて、今回および今後のスキャンで該当の検出結果を非表示にします。「Active」タブと「Muted」タブで両方のリストを常に確認できるため、検出結果が知らないうちに消えてしまうことはありません。

利用を開始するには

InfraFitで対象のノードグループを開き、Unevictable Podsビューに切り替えます。「See Recommendations」または「Unevictable Pods」ウィジェットをクリックしてください。

このビューでは、各検出結果の背景情報をまとめて確認できます。各ノードはPodのツリーマップ付きのカードとして表示され、退避できないPodは赤枠で示されます。任意のPodやノードをクリックすると、リクエストとリミット、実際の使用率、ラベル、アノテーションといった詳細を確認できます。フィルターを使えばtaintやnamespaceなどの条件でビューを絞り込めるほか、スナップショットは1か月前まで遡れるため、以前の状態との比較も可能です。

ドキュメントを読む