2016-12-26 10 views
0

GKE上のKubernetesクラスタ内のノードを減らすための優雅なやりかたがあります。GKEのKubernetesクラスタで正常に動作するノード(VM)を正常に削減する方法はありますか?

私は共有ジョブキューを見てジョブを実行するいくつかのポッドを持ついくつかのノードを持っています。また、ジョブキューの長さを監視し、gcloud compute instance-groups managed resizeコマンドを実行して長さがしきい値を超えた場合のインスタンス数を増やすスクリプトもあり、うまくいきます。

しかし、長さがしきい値を下回った場合のインスタンス数を減らすための優雅な方法はわかりません。

インスタンスが終了する前に、終了するインスタンスでポッドが動作するのを防ぐ良い方法はありますか?または他の良いプラクティスですか?

各ジョブは、ジョブが複数回実行されます場合、それが許容される30メートルと1H

  • 間の周りに取ることができます注

    • (最悪の場合を...)
  • +1

    あなたは[CLUSTのいくつかのバリエーションが欲しいような音autoscaler](https://cloud.google.com/container-engine/docs/cluster-autoscaler)にカスタムポリシーを適用します。 –

    +0

    絶対に。それが準備ができるまで、いくつかのハッキングが必要と思われる。 –

    答えて

    1

    Iタスクを実行するためにポッドを使用するのではなく、kubernetesジョブオブジェクトを使用することをお勧めします。このようにして、タスクが完了すると、ジョブはコンテナを終了します。キューに基づいてkubernetesのジョブを開始できる小さなポッドのみが必要です。

    作成されるkubeジョブが多いほど、より多くのリソースが消費され、クラスタオートスケーラはノードを追加する必要があることを認識します。 kubeジョブは終了しても完了する必要があり、完了するまでには再スケジュールされます。

    GKEドキュメントには、ジョブがノード上で実行されている場合にダウンサイジングが発生するかどうかについての情報はありませんが、ポッドを別のノードに簡単に移動でき、それを利用してノードを排水する。

    Refrences

    +0

    良いアイデアをありがとう! –

    関連する問題