@@ -10,10 +10,10 @@ feature:
10
10
11
11
<!-- overview -->
12
12
13
- {{< glossary_tooltip term_id="pod" >}}を指定する際に、{{{ < glossary_tooltip text="コンテナ" term_id="container" >}}が必要とする各リソースの量をオプションで指定することができます。
13
+ {{< glossary_tooltip term_id="pod" >}}を指定する際に、{{< glossary_tooltip text="コンテナ" term_id="container" >}}が必要とする各リソースの量をオプションで指定することができます。
14
14
指定する最も一般的なリソースはCPUとメモリ(RAM)ですが、他にもあります。
15
15
16
- Pod内のコンテナのリソース_要求_を指定すると 、スケジューラはこの情報を使用して、どのNodeにPodを配置するかを決定します。コンテナに _ 制限 _ リソースを指定すると、kubelet はその制限を適用し 、実行中のコンテナが設定した制限を超えてリソースを使用することができないようにします。また、kubelet は 、少なくともそのシステムリソースのうち、 _ 要求 _ の量を、そのコンテナが使用するために特別に確保します。
16
+ Pod内のコンテナのリソース * 要求 * を指定すると 、スケジューラはこの情報を使用して、どのNodeにPodを配置するかを決定します。コンテナに* 制限 * ソースを指定すると、kubeletはその制限を適用し 、実行中のコンテナが設定した制限を超えてリソースを使用することができないようにします。また、kubeletは 、少なくともそのシステムリソースのうち、* 要求 * の量を、そのコンテナが使用するために特別に確保します。
17
17
18
18
<!-- body -->
19
19
@@ -34,14 +34,14 @@ Podが動作しているNodeに利用可能なリソースが十分にある場
34
34
* CPU* と* メモリー* はいずれも* リソースタイプ* です。リソースタイプには基本単位があります。
35
35
CPUは計算処理を表し、[ Kubernetes CPUs] ( #meaning-of-cpu ) の単位で指定されます。
36
36
メモリはバイト単位で指定されます。
37
- Kubernetes v1.14以降を使用している場合は、_ huge page_リソースを指定することができます 。
37
+ Kubernetes v1.14以降を使用している場合は、* huge page * リソースを指定することができます 。
38
38
Huge PageはLinux固有の機能であり、Nodeのカーネルはデフォルトのページサイズよりもはるかに大きいメモリブロックを割り当てます。
39
39
40
40
たとえば、デフォルトのページサイズが4KiBのシステムでは、` hugepages-2Mi: 80Mi ` という制限を指定できます。
41
41
コンテナが40を超える2MiBの巨大ページ(合計80 MiB)を割り当てようとすると、その割り当ては失敗します。
42
42
43
43
{{< note >}}
44
- ` hugepages- * ` リソースをオーバーコミットすることはできません。
44
+ ` hugepages-* ` リソースをオーバーコミットすることはできません。
45
45
これは` memory ` や` cpu ` リソースとは異なります。
46
46
{{< /note >}}
47
47
@@ -61,7 +61,7 @@ Podの各コンテナは、次の1つ以上を指定できます。
61
61
* ` spec.containers[].resources.requests.memory `
62
62
* ` spec.containers[].resources.requests.hugepages-<size> `
63
63
64
- 要求と制限はそれぞれのコンテナでのみ指定できますが、Podリソースの要求と制限について説明すると便利です 。
64
+ 要求と制限はそれぞれのコンテナでのみ指定できますが、このPodリソースの要求と制限の関係性について理解すると便利です 。
65
65
特定のリソースタイプの* Podリソース要求/制限* は、Pod内の各コンテナに対するそのタイプのリソース要求/制限の合計です。
66
66
67
67
## Kubernetesにおけるリソースの単位
@@ -141,7 +141,7 @@ kubeletがPodのコンテナを開始すると、CPUとメモリーの制限が
141
141
142
142
Dockerを使用する場合:
143
143
144
- - ` spec.containers[].resources.requests.cpu`は、潜在的に小数であるコア値に変換され、1024倍されます。
144
+ - ` spec.containers[].resources.requests.cpu`は、潜在的に小数であるコア値に変換され、1024倍されます。
145
145
` docker run` コマンドの[`--cpu-shares`](https://docs.docker.com/engine/reference/run/#cpu-share-constraint)フラグの値は、この数値と2のいずれか大きい方が用いられます。
146
146
147
147
- ` spec.containers[].resources.limits.cpu` はミリコアの値に変換され、100倍されます。
@@ -155,8 +155,9 @@ Dockerを使用する場合:
155
155
156
156
- ` spec.containers[].resources.limits.memory` は整数に変換され、`docker run`コマンドの[`--memory`](https://docs.docker.com/engine/reference/run/#/user-memory-constraints)フラグの値として使用されます。
157
157
158
- コンテナがメモリー制限を超過すると、終了する場合があります。
158
+ コンテナがメモリー制限を超過すると、終了する場合があります。
159
159
コンテナが再起動可能である場合、kubeletは他のタイプのランタイム障害と同様にコンテナを再起動します。
160
+
160
161
コンテナがメモリー要求を超過すると、Nodeのメモリーが不足するたびにそのPodが排出される可能性があります。
161
162
162
163
コンテナは、長時間にわたってCPU制限を超えることが許可される場合と許可されない場合があります。
@@ -344,7 +345,7 @@ Kubernetesでは、`1048576`から始まるプロジェクトIDを使用しま
344
345
Kubernetesが使用しないようにする必要があります。
345
346
346
347
クォータはディレクトリスキャンよりも高速で正確です。
347
- ディレクトリがプロジェクトに割り当てられると、ディレクトリ配下に作成されたファイルはすべてそのプロジェクト内に作成され、カーネルはそのプロジェクト内のファイルによって使用されているブロックの数を追跡するだけです。
348
+ ディレクトリがプロジェクトに割り当てられると、ディレクトリ配下に作成されたファイルはすべてそのプロジェクト内に作成され、カーネルはそのプロジェクト内のファイルによって使用されているブロックの数を追跡するだけです。
348
349
ファイルが作成されて削除されても、開いているファイルディスクリプタがあれば、スペースを消費し続けます。
349
350
クォータトラッキングはそのスペースを正確に記録しますが、ディレクトリスキャンは削除されたファイルが使用するストレージを見落としてしまいます。
350
351
@@ -353,8 +354,8 @@ Kubernetesが使用しないようにする必要があります。
353
354
* kubelet設定で、`LocalocalStorpactionCapactionIsolationFSQuotaMonitoring=true`[フィーチャーゲート](/ja/docs/reference/command-line-tools-reference/feature-gate/)を有効にします。
354
355
355
356
* ルートファイルシステム(またはオプションのランタイムファイルシステム))がプロジェクトクォータを有効にしていることを確認してください。
356
- すべての XFS ファイルシステムはプロジェクトクォータをサポートしています 。
357
- ext4 ファイルシステムでは 、ファイルシステムがマウントされていない間は、プロジェクトクォータ追跡機能を有効にする必要があります。
357
+ すべてのXFSファイルシステムはプロジェクトクォータをサポートしています 。
358
+ ext4ファイルシステムでは 、ファイルシステムがマウントされていない間は、プロジェクトクォータ追跡機能を有効にする必要があります。
358
359
` ` ` bash
359
360
# ext4の場合、/dev/block-deviceがマウントされていません
360
361
sudo tune2fs -O project -Q prjquota /dev/block-device
0 commit comments