@@ -7,7 +7,7 @@ weight: 20
7
7
8
8
<!-- overview -->
9
9
10
- {{< feature-state for_k8s_version="v1.14 " state="beta " >}}
10
+ {{< feature-state for_k8s_version="v1.20 " state="stable " >}}
11
11
12
12
このページではRuntimeClassリソースと、runtimeセクションのメカニズムについて説明します。
13
13
@@ -24,9 +24,6 @@ RuntimeClassを使用して、コンテナランタイムは同じで設定が
24
24
25
25
## セットアップ
26
26
27
- RuntimeClass機能のフィーチャーゲートが有効になっていることを確認してください(デフォルトで有効です)。フィーチャーゲートを有効にする方法については、[ フィーチャーゲート] ( /ja/docs/reference/command-line-tools-reference/feature-gates/ ) を参照してください。
28
- その` RuntimeClass ` のフィーチャーゲートはApiServerとkubeletのどちらも有効になっていなければなりません。
29
-
30
27
1 . ノード上でCRI実装を設定する。(ランタイムに依存)
31
28
2 . 対応するRuntimeClassリソースを作成する。
32
29
@@ -40,7 +37,7 @@ RuntimeClassは、クラスター全体で同じ種類のノード設定であ
40
37
設定が異なるノードをサポートするには、[ スケジューリング] ( #scheduling ) を参照してください。
41
38
{{< /note >}}
42
39
43
- RuntimeClassの設定は、RuntimeClassによって参照される` ハンドラー ` 名を持ちます。そのハンドラーは正式なDNS-1123に準拠する形式のラベルでなくてはなりません(英数字 + ` - ` の文字で構成されます) 。
40
+ RuntimeClassの設定は、RuntimeClassによって参照される` ハンドラー ` 名を持ちます。そのハンドラーは有効な [ DNSラベル名 ] ( /ja/docs/concepts/overview/working-with-objects/names/#dns-label-names ) でなくてはなりません 。
44
41
45
42
### 2. 対応するRuntimeClassリソースを作成する
46
43
@@ -49,12 +46,15 @@ RuntimeClassの設定は、RuntimeClassによって参照される`ハンドラ
49
46
そのRuntimeClassリソースは現時点で2つの重要なフィールドを持ちます。それはRuntimeClassの名前(` metadata.name ` )とハンドラー(` handler ` )です。そのオブジェクトの定義は下記のようになります。
50
47
51
48
``` yaml
52
- apiVersion : node.k8s.io/v1beta1 # RuntimeClassはnode.k8s.ioというAPIグループで定義されます。
49
+ # RuntimeClassはnode.k8s.ioというAPIグループで定義されます。
50
+ apiVersion : node.k8s.io/v1
53
51
kind : RuntimeClass
54
52
metadata :
55
- name : myclass # RuntimeClass名
53
+ # RuntimeClass名
56
54
# RuntimeClassはネームスペースなしのリソースです。
57
- handler : myconfiguration # 対応するCRI設定
55
+ name : myclass
56
+ # 対応するCRI設定
57
+ handler : myconfiguration
58
58
` ` `
59
59
60
60
RuntimeClassオブジェクトの名前は[DNSサブドメイン名](/ja/docs/concepts/overview/working-with-objects/names#dns-subdomain-names)に従う必要があります。
@@ -68,7 +68,7 @@ Overview](/docs/reference/access-authn-authz/authorization/)を参照してく
68
68
69
69
## 使用例
70
70
71
- 一度RuntimeClassがクラスターに対して設定されると、それを使用するのは非常に簡単です。PodSpecの ` runtimeClassName`を指定してください。
71
+ RuntimeClassがクラスターに対して設定されると、PodSpecで ` runtimeClassName`を指定して使用できます。
72
72
例えば
73
73
74
74
` ` ` yaml
@@ -81,19 +81,15 @@ spec:
81
81
# ...
82
82
` ` `
83
83
84
- これは、Kubeletに対してPodを稼働させるためのRuntimeClassを使うように指示します 。もし設定されたRuntimeClassが存在しない場合や、CRIが対応するハンドラーを実行できない場合、そのPodは`Failed`という[フェーズ](/ja/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase)になります。
85
- エラーメッセージに関しては対応する[イベント](/docs/tasks/debug-application-cluster /debug-application-introspection /)を参照して下さい。
84
+ これは、kubeletに対してPodを稼働させるためのRuntimeClassを使うように指示します 。もし設定されたRuntimeClassが存在しない場合や、CRIが対応するハンドラーを実行できない場合、そのPodは`Failed`という[フェーズ](/ja/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase)になります。
85
+ エラーメッセージに関しては対応する[イベント](/docs/tasks/debug/debug -application/debug-running-pod /)を参照して下さい。
86
86
87
87
もし`runtimeClassName`が指定されていない場合、デフォルトのRuntimeHandlerが使用され、これはRuntimeClassの機能が無効であるときのふるまいと同じものとなります。
88
88
89
- # ## CRIの設定
89
+ # ## CRIの設定 {#cri-configuration}
90
90
91
91
CRIランタイムのセットアップに関するさらなる詳細は、[CRIのインストール](/docs/setup/cri/)を参照してください。
92
92
93
- # ### dockershim
94
-
95
- Kubernetesのビルトインのdockershim CRIは、ランタイムハンドラーをサポートしていません。
96
-
97
93
# ### {{< glossary_tooltip term_id="containerd" >}}
98
94
99
95
ランタイムハンドラーは、`/etc/containerd/config.toml`にあるcontainerdの設定ファイルにより設定されます。
@@ -103,8 +99,7 @@ Kubernetesのビルトインのdockershim CRIは、ランタイムハンドラ
103
99
[ plugins."io.containerd.grpc.v1.cri".containerd.runtimes.${HANDLER_NAME}]
104
100
```
105
101
106
- containerdの設定に関する詳細なドキュメントは下記を参照してください。
107
- https://github.com/containerd/containerd/blob/main/docs/cri/config.md
102
+ 詳細はcontainerdの[設定に関するドキュメント](https://github.com/containerd/containerd/blob/main/docs/cri/config.md)を参照してください。
108
103
109
104
#### {{< glossary_tooltip term_id="cri-o" >}}
110
105
@@ -117,15 +112,14 @@ table](https://github.com/cri-o/cri-o/blob/master/docs/crio.conf.5.md#crioruntim
117
112
runtime_path = "${PATH_TO_BINARY}"
118
113
```
119
114
120
- 詳細はCRI-Oの[設定に関するドキュメント](https://raw.githubusercontent. com/cri-o/cri-o/9f11d1d /docs/crio.conf.5.md)を参照してください。
115
+ 詳細はCRI-Oの[設定に関するドキュメント](https://github. com/cri-o/cri-o/blob/master /docs/crio.conf.5.md)を参照してください。
121
116
122
117
## スケジューリング {#scheduling}
123
118
124
119
{{< feature-state for_k8s_version="v1.16" state="beta" >}}
125
120
126
- Kubernetes 1.16では、RuntimeClassは`scheduling`フィールドを使ったクラスター内での異なる設定をサポートしています。
127
- このフィールドによって、設定されたRuntimeClassをサポートするノードに対してPodがスケジュールされることを保証できます。
128
- スケジューリングをサポートするためにはRuntimeClass [アドミッションコントローラー](/docs/reference/access-authn-authz/admission-controllers/#runtimeclass)を有効にしなければなりません。(1.16ではデフォルトです)
121
+ RuntimeClassの`scheduling`フィールドを指定することで、設定されたRuntimeClassをサポートするノードにPodがスケジューリングされるように制限することができます。
122
+ `scheduling`が設定されていない場合、このRuntimeClassはすべてのノードでサポートされていると仮定されます。
129
123
130
124
特定のRuntimeClassをサポートしているノードへPodが配置されることを保証するために、各ノードは`runtimeclass.scheduling.nodeSelector`フィールドによって選択される共通のラベルを持つべきです。
131
125
RuntimeClassのnodeSelectorはアドミッション機能によりPodのnodeSelectorに統合され、効率よくノードを選択します。
@@ -138,10 +132,9 @@ RuntimeClassのnodeSelectorはアドミッション機能によりPodのnodeSele
138
132
139
133
### Podオーバーヘッド
140
134
141
- {{< feature-state for_k8s_version="v1.18 " state="beta " >}}
135
+ {{< feature-state for_k8s_version="v1.24 " state="stable " >}}
142
136
143
137
Podが稼働する時に関連する _オーバーヘッド_ リソースを指定できます。オーバーヘッドを宣言すると、クラスター(スケジューラーを含む)がPodとリソースに関する決定を行うときにオーバーヘッドを考慮することができます。
144
- Podオーバーヘッドを使うためには、PodOverhead[フィーチャーゲート](/ja/docs/reference/command-line-tools-reference/feature-gates/)を有効にしなければなりません。(デフォルトではonです)
145
138
146
139
PodのオーバーヘッドはRuntimeClass内の`overhead`フィールドによって定義されます。
147
140
このフィールドを使用することで、RuntimeClassを使用して稼働するPodのオーバーヘッドを指定することができ、Kubernetes内部で使用されるオーバーヘッドを確保することができます。
0 commit comments