Closed2

deschedulerでGKEクラスタの使用率を高める

motonakamotonaka

問題背景

GKEでアプリケーションをスケールインしたときにリソースの使用率が低いノードが生まれる。
コスト最適化の観点でそういったノードは減らして、使用率を高めたい。

原因

クラスタオートスケーラーのスケーリングプロファイル[1]がデフォルトで balanced になっているから。

解決策

スケーリングプロファイルを optimize-utilization にする

GKEが積極的に使用率の低いノードからPodをスケジュールしてくれるようになります。
ただし、ドキュメントに記載の通りサービスを提供するワークロードでの使用は慎重に考えた方が良いと思います。検証環境で十分に試すのが良いです。

deschedulerを使用

descheduler [2] のHighNodeUtilizationを設定すれば、閾値を下回ったノードからPodをスケジュールしてくれます。上記のクラスタオートスケーラーによる方法よりは柔軟で、例えばアクセスのピーク時間での実行を避けるようにすることも可能。

[1] https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-autoscaler?hl=ja#autoscaling_profiles
[2] https://github.com/kubernetes-sigs/descheduler

このスクラップは2021/10/23にクローズされました