@@ -17,7 +17,7 @@ Pod内のコンテナのリソース*要求*を指定すると、スケジュー
17
17
18
18
<!-- body -->
19
19
20
- ## 要求と制限
20
+ ## 要求と制限 {#requests-and-limits}
21
21
22
22
Podが動作しているNodeに利用可能なリソースが十分にある場合、そのリソースの` 要求 ` が指定するよりも多くのリソースをコンテナが使用することが許可されます
23
23
ただし、コンテナはそのリソースの` 制限 ` を超えて使用することはできません。
@@ -33,7 +33,7 @@ Podが動作しているNodeに利用可能なリソースが十分にある場
33
33
コンテナが自身のメモリー制限を指定しているが、メモリー要求を指定していない場合、Kubernetesは制限に一致するメモリー要求を自動的に割り当てます。同様に、コンテナが自身のCPU制限を指定しているが、CPU要求を指定していない場合、Kubernetesは制限に一致するCPU要求を自動的に割り当てます。
34
34
{{< /note >}}
35
35
36
- ## リソースタイプ
36
+ ## リソースタイプ {#resource-types}
37
37
38
38
* CPU* と* メモリー* はいずれも* リソースタイプ* です。リソースタイプには基本単位があります。
39
39
CPUは計算処理を表し、[ Kubernetes CPUs] ( #meaning-of-cpu ) の単位で指定されます。
@@ -54,7 +54,7 @@ CPUとメモリーは、まとめて*コンピュートリソース*または単
54
54
それらは[ API resources] ( /ja/docs/concepts/overview/kubernetes-api/ ) とは異なります。
55
55
Podや[ Services] ( /ja/docs/concepts/services-networking/service/ ) などのAPIリソースは、Kubernetes APIサーバーを介して読み取りおよび変更できるオブジェクトです。
56
56
57
- ## Podとコンテナのリソース要求と制限
57
+ ## Podとコンテナのリソース要求と制限 {#resource-requests-and-limits-of-pod-and-container}
58
58
59
59
Podの各コンテナは、次の1つ以上を指定できます。
60
60
@@ -68,9 +68,9 @@ Podの各コンテナは、次の1つ以上を指定できます。
68
68
要求と制限はそれぞれのコンテナでのみ指定できますが、このPodリソースの要求と制限の関係性について理解すると便利です。
69
69
特定のリソースタイプの* Podリソース要求/制限* は、Pod内の各コンテナに対するそのタイプのリソース要求/制限の合計です。
70
70
71
- ## Kubernetesにおけるリソースの単位
71
+ ## Kubernetesにおけるリソースの単位 {#resource-units-in-kubernetes}
72
72
73
- ### CPUの意味
73
+ ### CPUの意味 {#meaning-of-cpu}
74
74
75
75
CPUリソースの制限と要求は、* cpu* 単位で測定されます。
76
76
Kuberenetesにおける1つのCPUは、クラウドプロバイダーの** 1 vCPU/コア** およびベアメタルのインテルプロセッサーの** 1 ハイパースレッド** に相当します。
@@ -85,7 +85,7 @@ Kuberenetesにおける1つのCPUは、クラウドプロバイダーの**1 vCPU
85
85
CPUは常に相対量としてではなく、絶対量として要求されます。
86
86
0.1は、シングルコア、デュアルコア、あるいは48コアマシンのどのCPUに対してでも、同一の量を要求します。
87
87
88
- ### メモリーの意味
88
+ ### メモリーの意味 {#meaning-of-memory}
89
89
90
90
` メモリー ` の制限と要求はバイト単位で測定されます。
91
91
E、P、T、G、M、Kのいずれかのサフィックスを使用して、メモリーを整数または固定小数点数として表すことができます。
@@ -128,15 +128,15 @@ spec:
128
128
cpu : " 500m"
129
129
` ` `
130
130
131
- ## リソース要求を含むPodがどのようにスケジュールされるか
131
+ ## リソース要求を含むPodがどのようにスケジュールされるか {#how-pods-with-resource-requests-are-scheduled}
132
132
133
133
Podを作成すると、KubernetesスケジューラーはPodを実行するNodeを選択します。
134
134
各Nodeには、リソースタイプごとに最大容量があります。それは、Podに提供できるCPUとメモリの量です。
135
135
スケジューラーは、リソースタイプごとに、スケジュールされたコンテナのリソース要求の合計がNodeの容量より少ないことを確認します。
136
136
Node上の実際のメモリーまたはCPUリソースの使用率は非常に低いですが、容量チェックが失敗した場合、スケジューラーはNodeにPodを配置しないことに注意してください。
137
137
これにより、例えば日々のリソース要求のピーク時など、リソース利用が増加したときに、Nodeのリソース不足から保護されます。
138
138
139
- ## リソース制限のあるPodがどのように実行されるか
139
+ ## リソース制限のあるPodがどのように実行されるか {#how-pods-with-resource-limits-are-run}
140
140
141
141
kubeletがPodのコンテナを開始すると、CPUとメモリーの制限がコンテナランタイムに渡されます。
142
142
@@ -166,13 +166,13 @@ Dockerを使用する場合:
166
166
167
167
コンテナをスケジュールできないか、リソース制限が原因で強制終了されているかどうかを確認するには、[トラブルシューティング](#troubleshooting)のセクションを参照してください。
168
168
169
- # ## コンピュートリソースとメモリーリソースの使用量を監視する
169
+ # ## コンピュートリソースとメモリーリソースの使用量を監視する {#monitoring-compute-memory-resource-usage}
170
170
171
171
Podのリソース使用量は、Podのステータスの一部として報告されます。
172
172
173
173
オプションの[監視ツール](/docs/tasks/debug-application-cluster/resource-usage-monitoring/)がクラスターにおいて利用可能な場合、Podのリソース使用量は[メトリクスAPI](/docs/tasks/debug-application-cluster/resource-metrics-pipeline/#the-metrics-api)から直接、もしくは監視ツールから取得できます。
174
174
175
- # # ローカルのエフェメラルストレージ
175
+ # # ローカルのエフェメラルストレージ {#local-ephemeral-storage}
176
176
177
177
<!-- feature gate LocalStorageCapacityIsolation -->
178
178
{{< feature-state for_k8s_version="v1.10" state="beta" >}}
@@ -192,7 +192,7 @@ Nodeに障害が発生すると、そのエフェメラルストレージ内の
192
192
193
193
ベータ版の機能として、Kubernetesでは、Podが消費するローカルのエフェメラルストレージの量を追跡、予約、制限することができます。
194
194
195
- # ## ローカルエフェメラルストレージの設定
195
+ # ## ローカルエフェメラルストレージの設定 {#configurations-for-local-ephemeral-storage}
196
196
197
197
Kubernetesは、Node上のローカルエフェメラルストレージを構成する2つの方法をサポートしています。
198
198
{{< tabs name="local_storage_configurations" >}}
@@ -235,7 +235,7 @@ kubeletは、ローカルストレージの使用量を測定できます。
235
235
kubeletは、`tmpfs`のemptyDirボリュームをローカルのエフェメラルストレージとしてではなく、コンテナメモリーとして追跡します。
236
236
{{< /note >}}
237
237
238
- # ## ローカルのエフェメラルストレージの要求と制限設定
238
+ # ## ローカルのエフェメラルストレージの要求と制限設定 {#setting-requests-and-limits-for-local-ephemeral-storage}
239
239
240
240
ローカルのエフェメラルストレージを管理するためには _ephemeral-storage_ パラメーターを利用することができます。
241
241
Podの各コンテナは、次の1つ以上を指定できます。
@@ -288,7 +288,7 @@ spec:
288
288
emptyDir: {}
289
289
` ` `
290
290
291
- # ## エフェメラルストレージを要求するPodのスケジュール方法
291
+ # ## エフェメラルストレージを要求するPodのスケジュール方法 {#how-pods-with-ephemeral-storage-requests-are-scheduled}
292
292
293
293
Podを作成すると、KubernetesスケジューラーはPodを実行するNodeを選択します。
294
294
各Nodeには、Podに提供できるローカルのエフェメラルストレージの上限があります。
@@ -375,7 +375,7 @@ Kubernetesが使用しないようにする必要があります。
375
375
{{% /tab %}}
376
376
{{< /tabs >}}
377
377
378
- # # 拡張リソース
378
+ # # 拡張リソース {#extended-resources}
379
379
380
380
拡張リソースは`kubernetes.io`ドメインの外で完全に修飾されたリソース名です。
381
381
これにより、クラスタオペレータはKubernetesに組み込まれていないリソースをアドバタイズし、ユーザはそれを利用することができるようになります。
@@ -384,16 +384,16 @@ Kubernetesが使用しないようにする必要があります。
384
384
第一に、クラスタオペレーターは拡張リソースをアドバタイズする必要があります。
385
385
第二に、ユーザーはPodで拡張リソースを要求する必要があります。
386
386
387
- # ## 拡張リソースの管理
387
+ # ## 拡張リソースの管理 {#managing-extended-resources}
388
388
389
- # ### Nodeレベルの拡張リソース
389
+ # ### Nodeレベルの拡張リソース {#node-level-extended-resources}
390
390
391
391
Nodeレベルの拡張リソースはNodeに関連付けられています。
392
392
393
- # #### デバイスプラグイン管理のリソース
393
+ # #### デバイスプラグイン管理のリソース {#device-plugin-managed-resources}
394
394
各Nodeにデバイスプラグインで管理されているリソースをアドバタイズする方法については、[デバイスプラグイン](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/)を参照してください。
395
395
396
- # #### その他のリソース
396
+ # #### その他のリソース {#other-resources}
397
397
新しいNodeレベルの拡張リソースをアドバタイズするには、クラスタオペレータはAPIサーバに`PATCH`HTTPリクエストを送信し、クラスタ内のNodeの`status.capacity`に利用可能な量を指定します。
398
398
この操作の後、ノードの`status.capacity`には新しいリソースが含まれます。
399
399
` status.allocatable` フィールドは、kubeletによって非同期的に新しいリソースで自動的に更新されます。
@@ -416,7 +416,7 @@ JSON-Patchの操作パス値は、JSON-Pointerとして解釈されます。
416
416
詳細については、[IETF RFC 6901, section 3](https://tools.ietf.org/html/rfc6901#section-3)を参照してください。
417
417
{{< /note >}}
418
418
419
- # ### クラスターレベルの拡張リソース
419
+ # ### クラスターレベルの拡張リソース {#cluster-level-extended-resources}
420
420
421
421
クラスターレベルの拡張リソースはノードに関連付けられていません。
422
422
これらは通常、リソース消費とリソースクォータを処理するスケジューラー拡張機能によって管理されます。
@@ -449,7 +449,7 @@ JSON-Patchの操作パス値は、JSON-Pointerとして解釈されます。
449
449
}
450
450
` ` `
451
451
452
- # ## 拡張リソースの消費
452
+ # ## 拡張リソースの消費 {#consuming-extended-resources}
453
453
454
454
ユーザーは、CPUやメモリのようにPodのスペックで拡張されたリソースを消費できます。
455
455
利用可能な量以上のリソースが同時にPodに割り当てられないように、スケジューラーがリソースアカウンティングを行います。
@@ -493,9 +493,9 @@ spec:
493
493
example.com/foo: 1
494
494
` ` `
495
495
496
- # # トラブルシューティング
496
+ # # トラブルシューティング {#troubleshooting}
497
497
498
- # ## failedSchedulingイベントメッセージが表示され、Podが保留中になる
498
+ # ## failedSchedulingイベントメッセージが表示され、Podが保留中になる {#my-pods-are-pending-with-event-message-failedscheduling}
499
499
500
500
スケジューラーがPodが収容されるNodeを見つけられない場合、場所が見つかるまでPodはスケジュールされないままになります。
501
501
スケジューラーがPodの場所を見つけられないたびに、次のようなイベントが生成されます。
@@ -562,7 +562,7 @@ Allocated resources:
562
562
[ リソースクォータ] ( /docs/concepts/policy/resource-quotas/ ) 機能は、消費できるリソースの総量を制限するように設定することができます。
563
563
名前空間と組み合わせて使用すると、1つのチームがすべてのリソースを占有するのを防ぐことができます。
564
564
565
- ### コンテナが終了した
565
+ ### コンテナが終了した {#my-container-is-terminated}
566
566
567
567
コンテナはリソース不足のため、終了する可能性があります。
568
568
コンテナがリソース制限に達したために強制終了されているかどうかを確認するには、対象のPodで` kubectl describe pod ` を呼び出します。
0 commit comments