14. LimitRange / ResourceQuota
LimitRange、ResourceQuotaはともに使えるリソースの上限を定義する。
| 定義の場所 |
範囲 |
目的 |
| Deployment |
PodとContainer1つあたりの下限上限 |
アプリケーションの適切な値の定義 |
| LimitRange |
Namespace内のPodとContainer1つあたりの下限上限 |
開発者の書き忘れ・ミスを防ぐ |
| ResourceQuota |
Namespace全体の下限上限 |
Namespace全体が暴走しないようにする |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | # アプリ側LimitRange
# Namespace内の個々のPod・コンテナのリソース範囲を定義する
# 開発者の書き忘れ・ミスを防ぐ
apiVersion: v1
kind: LimitRange
metadata:
name: app-limit-range
namespace: app
spec:
limits:
- type: Container
default: # resources を書かない Pod へのデフォルト値
cpu: "200m"
memory: "256Mi"
defaultRequest: # requests のデフォルト値
cpu: "100m"
memory: "128Mi"
max: # 1コンテナの上限
cpu: "1"
memory: "1Gi"
min: # 1コンテナの下限
cpu: "10m"
memory: "64Mi"
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | # アプリ側ResourceQuota
# Namespace 全体で使えるリソースの上限を定義する
# Namespace 全体が暴走しないようにする
apiVersion: v1
kind: ResourceQuota
metadata:
name: app-quota
namespace: app
spec:
hard:
requests.cpu: "1" # Namespace 全体の requests 合計上限
requests.memory: "1Gi"
limits.cpu: "2" # Namespace 全体の limits 合計上限
limits.memory: "2Gi"
pods: "10" # Pod 数の上限
|