14.3. 制限範囲
LimitRange
オブジェクトで定義される制限範囲は、Pod、コンテナー、イメージ、イメージストリーム、および Persistent Volume Claim (永続ボリューム要求、PVC) のレベルでプロジェクトのコンピュートリソース制約を列挙し、Pod、コンテナー、イメージ、イメージストリームまたは Persistent Volume Claim (永続ボリューム要求、PVC) で消費できるリソースの量を指定します。
すべてのリソース作成および変更要求は、プロジェクトの各 LimitRange
オブジェクトに対して評価されます。リソースが列挙される制約に違反する場合、そのリソースは拒否されます。リソースが明示的な値を指定しない場合で、制約がデフォルト値をサポートする場合は、デフォルト値がリソースに適用されます。
制限範囲はクラスター管理者によって設定され、所定プロジェクトにスコープが設定されます。
14.3.1. 制限範囲の表示
web コンソールでプロジェクトの Quota ページに移動し、プロジェクトで定義される制限範囲を表示できます。
CLI を使用して制限範囲の詳細を表示することもできます。
まず、プロジェクトで定義される制限範囲の一覧を取得します。たとえば、demoproject というプロジェクトの場合は以下のようになります。
$ oc get limits -n demoproject NAME AGE resource-limits 6d
次に、関連のある制限範囲の説明を表示します。 たとえば、resource-limits 制限範囲の場合は以下のようになります。
$ oc describe limits resource-limits -n demoproject Name: resource-limits Namespace: demoproject Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio ---- -------- --- --- --------------- ------------- ----------------------- Pod cpu 200m 2 - - - Pod memory 6Mi 1Gi - - - Container cpu 100m 2 200m 300m 10 Container memory 4Mi 1Gi 100Mi 200Mi - openshift.io/Image storage - 1Gi - - - openshift.io/ImageStream openshift.io/image - 12 - - - openshift.io/ImageStream openshift.io/image-tags - 10 - - -
詳細の制限範囲の定義は、オブジェクトで oc export
を実行して表示できます。以下は、制限範囲の定義例を示しています。
OpenShift Online Pro の場合、Pod の最大メモリーは 3Gi です。指定できる最小 Pod またはコンテナーのメモリーは 100Mi です。
OpenShift Online Starter の場合、Pod の最大メモリーは 1Gi です。指定できる最小 Pod またはコンテナーのメモリーは 200Mi です。
コア Limit Range オブジェクトの定義
apiVersion: "v1" kind: "LimitRange" metadata: name: "core-resource-limits" 1 spec: limits: - type: "Pod" max: cpu: "2" 2 memory: "1Gi" 3 min: cpu: "200m" 4 memory: "6Mi" 5 - type: "Container" max: cpu: "2" 6 memory: "1Gi" 7 min: cpu: "100m" 8 memory: "4Mi" 9 default: cpu: "300m" 10 memory: "200Mi" 11 defaultRequest: cpu: "200m" 12 memory: "100Mi" 13 maxLimitRequestRatio: cpu: "10" 14
- 1
- 制限範囲オブジェクトの名前です。
- 2
- すべてのコンテナーにおいて Pod がノードで要求できる CPU の最大量です。
- 3
- すべてのコンテナーにおいて Pod がノードで要求できるメモリーの最大量です。
- 4
- すべてのコンテナーにおいて Pod がノードで要求できる CPU の最小量です。
- 5
- すべてのコンテナーにおいて Pod がノードで要求できるメモリーの最小量です。
- 6
- Pod の単一コンテナーが要求できる CPU の最大量です。
- 7
- Pod の単一コンテナーが要求できるメモリーの最大量です。
- 8
- Pod の単一コンテナーが要求できる CPU の最小量です。
- 9
- Pod の単一コンテナーが要求できるメモリーの最小量です。
- 10
- 指定がない場合、コンテナーによる使用を制限する CPU のデフォルト量です。
- 11
- コンテナーによる使用を制限するメモリーのデフォルト量です (指定がない場合)。
- 12
- コンテナーが使用を要求する CPU のデフォルト量です (指定がない場合)。
- 13
- コンテナーが使用を要求するメモリーのデフォルト量です (指定がない場合)。
- 14
- 制限の要求に対する比率でコンテナーで実行できる CPU バーストの最大量です。
CPU およびメモリーの測定方法についての詳細は、「コンピュートリソース」を参照してください。
14.3.2. コンテナーの制限
サポートされるリソース:
- CPU
- メモリー
サポートされる制約:
コンテナーごとに設定されます。 指定される場合、以下を満たしている必要があります。
制約 | 動作 |
---|---|
|
設定で |
|
設定で |
|
設定で
たとえば、コンテナーの |
サポートされるデフォルト:
Default[resource]
-
指定がない場合は
container.resources.limit[resource]
を所定の値にデフォルト設定します。 Default Requests[resource]
-
指定がない場合は、
container.resources.requests[resource]
を所定の値にデフォルト設定します。
14.3.3. Pod の制限
サポートされるリソース:
- CPU
- メモリー
サポートされる制約:
Pod のすべてのコンテナーにおいて、以下を満たしている必要があります。
制約 | 実施される動作 |
---|---|
|
|
|
|
|
|