【リミットレンジ】
LimitRange(Kubernetes) とは?
最終更新:
💡 個々のリソース設定に「この範囲で申請してね」と決める規約
KubernetesのNamespace内で、コンテナやPodのリソース要求・上限、PVCのストレージ要求などに最小・最大値を定めるリソース。コンテナには省略されたrequests・limitsの既定値も設定できる。
📌 このページのポイント
ResourceQuotaだけでは、個々の設定までは決まらないの?
最小・最大値を外れると、どうなるの?
設定に違反するPodの作成などは拒否されるよ。Container型でmax.memoryを2Giにした場合、2Giを超える要求や上限は違反するけれど、2Giちょうどはこの最大値を超えない。要求と上限の比率にも制限を設定できるんだ。
図の緑のコンテナは、必ず起動できる?
図はCPUのルールだけを検査した架空の例だよ。Aは既定値が付き、Bは明示したrequest 500m・limit 1が範囲内、Cは4・4で最大2を超える。この検査に通っても、Quotaやノードの空きなど別の条件によって起動できないことはあるんだ。
LimitRangeを変えると、動いているPodも変わる?
既存のPodには変更が自動で適用されないよ。また、明示したrequestより既定のlimitが小さくなると不整合で拒否されることもある。Quotaと補完し合えるけれど、値の整合や配置条件まで無条件に保証するものではないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「LimitRange」って出てきたら「個々のリソース設定に上下限や既定値を決めるルール」と思えばだいたいOK!
📖 おまけ:英語の意味
「LimitRange」 = 制限範囲
💬 Limitは「制限」、Rangeは「範囲」。実際の使用量を常に下限以上にするのではなく、リソースの要求や上限として設定する値の範囲などを定めるよ