Closed2
deschedulerでGKEクラスタの使用率を高める
問題背景
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
結論
今はdeschedulerを使うのが安全
このスクラップは2021/10/23にクローズされました