QoS
サービス品質は、の頭文字であるサービスの品質。同時に、リソースのスケジューリングとリソース使用率の配分を効果的に達成改善するために、kubernetes
QoSのを介してサービス管理ポッドの品質に異なるサービス品質(サービス品質)への期待。:ポッド、特定の2つの指標のサービスの質のためにCPU 和内存
。ノードのメモリが十分ではない場合、kubernetesは、予め設定に応じて異なるQoSクラスで配られます。
QoSはに分けることができるGuaranteed、Burstable 和 Best-Effort
三つのカテゴリー、最も低い優先度の最も高いです。
保証(保証)
次の2つのレベルに属するポッド:
- すべての容器やポッドのみがCPUとメモリの制限で提供されています
- 全ての容器は、ポッドに設定され、CPUメモリ要求および制限、および単一容器内れる
requests==limits
(0要求に等しくありません)
すべてのコンテナはポッドであり、唯一の制限を設定します。
containers:
name: foo
resources:
limits:
cpu: 10m
memory: 1Gi
name: bar
resources:
limits:
cpu: 100m
memory: 100Mi
すべてのコンテナは、ポッドと要求の制限、および単一の容器中に設定されていますrequests==limits
。
containers:
name: foo
resources:
limits:
cpu: 10m
memory: 1Gi
requests:
cpu: 10m
memory: 1Gi
name: bar
resources:
limits:
cpu: 100m
memory: 100Mi
requests:
cpu: 100m
memory: 100Mi
制限内でコンテナfooとbar要求リソースと等しく、ポッドのQoSレベルが属しますGuaranteed
。
バースト可能な(不安定な)
限り、コンテナは要求と制限セットのポッドがあるのと同じではありません、それは、ポッドのQoSのですBurstable
。
フー・コンテナは、リソースを指定し、コンテナバーが指定されていません。
containers:
name: foo
resources:
limits:
cpu: 10m
memory: 1Gi
requests:
cpu: 10m
memory: 1Gi
name: bar
コンテナfooがメモリー制限を設定し、コンテナバーはCPUの制限を設定します。
containers:
name: foo
resources:
limits:
memory: 1Gi
name: bar
resources:
limits:
cpu: 100m
注:コンテナ要求が制限を指定せずに指定した場合、最大値の制限は、ノードをリソースに等しく、コンテナ指定された制限要求、同じ制限の要求を指定されていない場合。
ベストエフォート(ベストエフォート)
ポッドコンテナ内のすべてのリソースが制限に何の要求も設けられていない場合は、それは、ポッドのQoSのですBest-Effort
。
fooとbarのコンテナ船は、要求と制限を設定しないでください。
containers:
name: foo
resources:
name: bar
resources:
QoSに基づいて、資源回復戦略
スルーKubernetes cgroup
に十分なリソースがある場合、QoSレベルを設定ポッドにkill
低い優先順位ポッドを介して、実際の使用では、OOM
端数値にOOM
スコア範囲0〜1000。OOMスコア値は、OOM_ADJ
パラメータ算出を得ました。
Guaranteed
OOM_ADJがために-998パラメータとなっレベルポッド、Best-Effort
レベルポッド、OOM_ADJパラメータがために、1000年になるBurstable
2から999からレベルポッド、OOM_ADJパラメータ値。
このようkubelet、ドッキングウィンドウとしてkuberntesの予備リソースについては、OOM_ADJパラメータは、それがOOMキル外ではないことを、-999になりました。OOMスコアから算出し、より大きな、高いOOM_ADJパラメータ、ポッドの優先順位が低いほど、リソースの競合が早くOOM_ADJパラメータのために、オフに殺すがある場合OOMのでkubernetes -999決してありオフ殺すために。
QoSのポッドは、順序でシーンを殺します
- ベストエフォートポッド:システムは、すべてのメモリを使用する場合、タイプポッドがオフに殺すことが初めてとなります。
- バースト可能なポッド:システムがメモリのすべてを使用し、キルは、ポッドのタイプは殺すだろうというとき、コンテナのないベストエフォート型はなることはできません。
- 保証ポッド:システムがメモリのすべてを使用し、コンテナのないバースト可能とベストエフォート型で時間を殺すことはできません、ポッドのタイプは殺すでしょう。
QoSの提言
十分なリソースがあることができればQoSのポッドを入力するように設定されていますGuaranteed
。トラブルシューティングするために、サービスのパフォーマンスと安定性の計算リソースの、時間とコストの削減を変更します。あなたはより良いリソースの利用率を向上させたい場合は他の人がバースト可能なまたはベストエフォートに設定することができる重要度に基づいている間に、ビジネスサービスは、保証を設定することができます。