spec.containers.resources
例
code:yaml
spec:
containers:
- name: app
image: nginx:1.25
resources:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
Podをスケジュールする際に、ノード上にこれだけの空きがあるかをチェックする値
最低保証
コンテナが使えるリソースの上限
memory
limitsを超えるとOOMKillされる(強制終了)
cpu
limitsを超えるとスロットリング(処理が遅くなるだけで殺されない)
requestsとlimitsは基本的にセットで指定する
requestsだけ指定した場合
limitsが無制限になり、コンテナが暴走するとノード全体に影響する
limitsだけ指定した場合
requestsがlimitsと同じ値に自動設定される
意図せず多くのリソースを予約してしまう可能性がある
QoS class
requests と limits の組み合わせで決まる
table:QoS class
class 条件 特徴
Burstable requests < limits 余裕があればlimitsまで使える 実運用ではBurstable(requests < limits)の方がよく見る
requestsを低めに抑えてスケジュールしやすくしつつ、limitsで上限を守る
短命で確実に完了させたい処理(例: DBマイグレーション)はGuaranteedが安全な場合もある