2015-10-28 6 views
6

私はGKEクラスタのコア数を3以下にしたいと思っています。これは、K8レプリケーションコントローラとポッドのCPU制限が100mから最大50mに下がった場合に、より実現可能になります。それ以外の場合、K8のポッドだけで1つのコアの70%が使用されます。kubernetesシステムリソースのCPU制限を減らすには?

私は、ノードのCPU能力を上げることに決めました。これは、私の考えでは概念上間違っています。なぜなら、CPUの制限はコアで測定されるように定義されているからです。代わりに、私は次のようでした:

  • は、デフォルトのCPUの制限として「50メートル」とのバージョンとlimitranges /限界交換(必要ありませんが、私の意見クリーナーで)
  • KUBE-システム内のすべての複製コントローラにパッチを適用これは多くの作業ですべてのコンテナのために50メートルを使用したバージョン

でKUBE-System名前空間内のすべての非RCポッドを交換する彼らのポッド

  • を削除するすべてのコンテナ
  • のための50メートルを使用するには、名前空間おそらく壊れやすいでしょう。 K8の次期バージョンの変更やGKE設定の変更は、それを破る可能性があります。

    だから、もっと良い方法がありますか?

  • 答えて

    3

    デフォルトのネームスペースのLimitRange spec.limits.defaultRequest.cpuを変更すると、新しいPodのデフォルトを変更するための正当な解決策になります。 LimitRangeオブジェクトは名前空間であることに注意してください。余分な名前空間を使用する場合は、おそらく、それらのために正常なデフォルトが何であるか考えてみてください。

    あなたが指摘しているように、これはkube-system名前空間の既存のオブジェクトやオブジェクトには影響しません。

    kube-system名前空間内のオブジェクトは、観測値に基づいて経験的にほとんどサイズが決められていました。それらを変更すると悪影響を受ける可能性がありますが、クラスタが非常に小さい場合はそうでないかもしれません。

    合計クラスタサイズに基づいてkube-systemリクエストを調整する未解決の問題(https://github.com/kubernetes/kubernetes/issues/13048)がありますが、まだ実装されていません。いくつかのkube-systemリソースにはおそらく低いQoSを使用するために別の未解決の問題(https://github.com/kubernetes/kubernetes/issues/13695)がありますが、まだ実装されていません。

    #13048は、あなたが求めているものを実装する正しい方法だと思います。今のところ、「良い方法がある」という答えは悲しいことに「いいえ」です。私たちは中規模のクラスターのデフォルトを選択しました。非常に小さなクラスターでは、おそらくあなたがやっていることをする必要があります。

    関連する問題