krr@ベストプラクティス違反¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. krrの仕組み¶
アーキテクチャ¶
Prometheusのメトリクスから各コンテナに最適なCPU/メモリの設定値を算出できる。
kkrを含めた様々なメトリクスを監視する場合、開発元が同じrobustaを使用する。
設計思想¶
krrでは、CPUの.spec.containers[*].resources.limits
キー値の設定はアンチパターンとして扱っている。
そのため、未設定を推奨している。
理由として、CPUを制限してしまうと、コンテナがどんな状況であってもコンテナにCPUを割り当てない。
これにより、コンテナがハードウェアリソース不足を起こす可能性が高くなるためである。
アルゴリズム¶
CPUに関して、99
%のCPU処理が余裕を持てるように数値を算出する。
メモリに関して、過去一週間の最大値に5
%のバッファーを加えて、数値を算出する。
02. CLI¶
simple¶
シンプル戦略に基づいて、最適なCPU/メモリの設定値を算出する。
$ krr simple
┏━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┓
┃ Number ┃ Namespace ┃ Name ┃ Pods ┃ Old Pods ┃ Type ┃ Container ┃ CPU Diff ┃ CPU Requests ┃ CPU Limits ┃ Memory Diff ┃ Memory Requests ┃ Memory Limits ┃
┡━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━┩
│ 1. │ foo │ foo-pod │ 0 │ 1 │ Job │ foo │ │ 500m -> ? (No data) │ unset -> ? (No data) │ │ 256Mi -> ? (No data) │ unset -> ? (No data) │
├────────┼─────────────┼────────────────────────────────────────────────┼──────┼──────────┼─────────────┼─────────────────────────┼──────────┼─────────────────────────┼──────────────────────┼─────────────┼───────────────────────────┼──────────────────────┤
│ 2. │ bar │ bar-pod │ 1 │ 0 │ Deployment │ bar │ +10m │ (+10m) unset -> 10m │ unset │ +100Mi │ (+100Mi) unset -> 100Mi │ unset -> 100Mi │
├────────┼─────────────┼────────────────────────────────────────────────┼──────┼──────────┼─────────────┼─────────────────────────┼──────────┼─────────────────────────┼──────────────────────┼─────────────┼───────────────────────────┼──────────────────────┤
│ 3. │ baz │ baz-pod │ 2 │ 0 │ Deployment │ baz-1 │ +20m │ (+10m) unset -> 10m │ unset │ +200Mi │ (+100Mi) unset -> 100Mi │ unset -> 100Mi │
│ 4. │ │ │ │ │ │ baz-2 │ +20m │ (+10m) unset -> 10m │ unset │ +200Mi │ (+100Mi) unset -> 100Mi │ unset -> 100Mi │
│ 5. │ │ │ │ │ │ baz-3 │ +20m │ (+10m) unset -> 10m │ unset │ +200Mi │ (+100Mi) unset -> 100Mi │ unset -> 100Mi │
├────────┼─────────────┼────────────────────────────────────────────────┼──────┼──────────┼─────────────┼─────────────────────────┼──────────┼─────────────────────────┼──────────────────────┼─────────────┼───────────────────────────┼──────────────────────┤
...