Update Japanese localization on concepts/containers/runtime-class.md
This commit is contained in:
parent
211acbe519
commit
2efdc53209
|
|
@ -11,20 +11,18 @@ weight: 20
|
||||||
|
|
||||||
このページではRuntimeClassリソースと、runtimeセクションのメカニズムについて説明します。
|
このページではRuntimeClassリソースと、runtimeセクションのメカニズムについて説明します。
|
||||||
|
|
||||||
{{< warning >}}
|
RuntimeClassはコンテナランタイムの設定を選択するための機能です。そのコンテナランタイム設定はPodのコンテナを稼働させるために使われます。
|
||||||
RuntimeClassはKubernetes1.14のβ版アップグレードにおいて*破壊的な* 変更を含んでいます。もしユーザーがKubernetes1.14以前のバージョンを使っていた場合、[RuntimeClassのα版からβ版へのアップグレード](#upgrading-runtimeclass-from-alpha-to-beta)を参照してください。
|
|
||||||
{{< /warning >}}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- body -->
|
<!-- body -->
|
||||||
|
|
||||||
## RuntimeClassについて
|
## RuntimeClassを使う動機
|
||||||
|
|
||||||
RuntimeClassはコンテナランタイムの設定を選択するための機能です。そのコンテナランタイム設定はPodのコンテナを稼働させるために使われます。
|
異なるPodに異なるRuntimeClassを設定することで、パフォーマンスとセキュリティのバランスをとることができます。例えば、ワークロードの一部に高レベルの情報セキュリティ保証が必要な場合、ハードウェア仮想化を使用するコンテナランタイムで実行されるようにそれらのPodをスケジュールすることを選択できます。その後、追加のオーバーヘッドを犠牲にして、代替ランタイムをさらに分離することでメリットが得られます。
|
||||||
|
|
||||||
### セットアップ
|
RuntimeClassを使用して、コンテナランタイムは同じで設定が異なるPodを実行することもできます。
|
||||||
|
|
||||||
|
## セットアップ
|
||||||
|
|
||||||
RuntimeClass機能のフィーチャーゲートが有効になっていることを確認してください(デフォルトで有効です)。フィーチャーゲートを有効にする方法については、[フィーチャーゲート](/ja/docs/reference/command-line-tools-reference/feature-gates/)を参照してください。
|
RuntimeClass機能のフィーチャーゲートが有効になっていることを確認してください(デフォルトで有効です)。フィーチャーゲートを有効にする方法については、[フィーチャーゲート](/ja/docs/reference/command-line-tools-reference/feature-gates/)を参照してください。
|
||||||
その`RuntimeClass`のフィーチャーゲートはApiServerとkubeletのどちらも有効になっていなければなりません。
|
その`RuntimeClass`のフィーチャーゲートはApiServerとkubeletのどちらも有効になっていなければなりません。
|
||||||
|
|
@ -32,7 +30,7 @@ RuntimeClass機能のフィーチャーゲートが有効になっているこ
|
||||||
1. ノード上でCRI実装を設定する。(ランタイムに依存)
|
1. ノード上でCRI実装を設定する。(ランタイムに依存)
|
||||||
2. 対応するRuntimeClassリソースを作成する。
|
2. 対応するRuntimeClassリソースを作成する。
|
||||||
|
|
||||||
#### 1. ノード上でCRI実装を設定する。
|
### 1. ノード上でCRI実装を設定する。
|
||||||
|
|
||||||
RuntimeClassを通じて利用可能な設定はContainer Runtime Interface (CRI)の実装依存となります。
|
RuntimeClassを通じて利用可能な設定はContainer Runtime Interface (CRI)の実装依存となります。
|
||||||
ユーザーの環境のCRI実装の設定方法は、対応するドキュメント([下記](#cri-configuration))を参照ください。
|
ユーザーの環境のCRI実装の設定方法は、対応するドキュメント([下記](#cri-configuration))を参照ください。
|
||||||
|
|
@ -44,7 +42,7 @@ RuntimeClassは、クラスター全体で同じ種類のノード設定であ
|
||||||
|
|
||||||
RuntimeClassの設定は、RuntimeClassによって参照される`ハンドラー`名を持ちます。そのハンドラーは正式なDNS-1123に準拠する形式のラベルでなくてはなりません(英数字 + `-`の文字で構成されます)。
|
RuntimeClassの設定は、RuntimeClassによって参照される`ハンドラー`名を持ちます。そのハンドラーは正式なDNS-1123に準拠する形式のラベルでなくてはなりません(英数字 + `-`の文字で構成されます)。
|
||||||
|
|
||||||
#### 2. 対応するRuntimeClassリソースを作成する
|
### 2. 対応するRuntimeClassリソースを作成する
|
||||||
|
|
||||||
ステップ1にて設定する各項目は、関連する`ハンドラー` 名を持ちます。それはどの設定かを指定するものです。各ハンドラーにおいて、対応するRuntimeClassオブジェクトが作成されます。
|
ステップ1にて設定する各項目は、関連する`ハンドラー` 名を持ちます。それはどの設定かを指定するものです。各ハンドラーにおいて、対応するRuntimeClassオブジェクトが作成されます。
|
||||||
|
|
||||||
|
|
@ -68,7 +66,7 @@ RuntimeClassの書き込み操作(create/update/patch/delete)はクラスター
|
||||||
Overview](/docs/reference/access-authn-authz/authorization/)を参照してください。
|
Overview](/docs/reference/access-authn-authz/authorization/)を参照してください。
|
||||||
{{< /note >}}
|
{{< /note >}}
|
||||||
|
|
||||||
### 使用例
|
## 使用例
|
||||||
|
|
||||||
一度RuntimeClassがクラスターに対して設定されると、それを使用するのは非常に簡単です。PodSpecの`runtimeClassName`を指定してください。
|
一度RuntimeClassがクラスターに対して設定されると、それを使用するのは非常に簡単です。PodSpecの`runtimeClassName`を指定してください。
|
||||||
例えば
|
例えば
|
||||||
|
|
@ -119,17 +117,15 @@ table](https://github.com/cri-o/cri-o/blob/master/docs/crio.conf.5.md#crioruntim
|
||||||
runtime_path = "${PATH_TO_BINARY}"
|
runtime_path = "${PATH_TO_BINARY}"
|
||||||
```
|
```
|
||||||
|
|
||||||
CRI-Oの[設定に関するドキュメント][100]の詳細は下記を参照してください。
|
CRI-Oの[設定に関するドキュメント](https://raw.githubusercontent.com/cri-o/cri-o/9f11d1d/docs/crio.conf.5.md)の詳細は下記を参照してください。
|
||||||
|
|
||||||
[100]: https://raw.githubusercontent.com/cri-o/cri-o/9f11d1d/docs/crio.conf.5.md
|
## スケジューリング {#scheduling}
|
||||||
|
|
||||||
### スケジューリング {#scheduling}
|
|
||||||
|
|
||||||
{{< feature-state for_k8s_version="v1.16" state="beta" >}}
|
{{< feature-state for_k8s_version="v1.16" state="beta" >}}
|
||||||
|
|
||||||
Kubernetes 1.16では、RuntimeClassは`scheduling`フィールドを使ったクラスター内での異なる設定をサポートしています。
|
Kubernetes 1.16では、RuntimeClassは`scheduling`フィールドを使ったクラスター内での異なる設定をサポートしています。
|
||||||
このフィールドによって、設定されたRuntimeClassをサポートするノードに対してPodがスケジュールされることを保証できます。
|
このフィールドによって、設定されたRuntimeClassをサポートするノードに対してPodがスケジュールされることを保証できます。
|
||||||
スケジューリングをサポートするためにはRuntimeClass [アドミッションコントローラー][]を有効にしなければなりません。(1.16ではデフォルトです)
|
スケジューリングをサポートするためにはRuntimeClass [アドミッションコントローラー](/docs/reference/access-authn-authz/admission-controllers/#runtimeclass)を有効にしなければなりません。(1.16ではデフォルトです)
|
||||||
|
|
||||||
特定のRuntimeClassをサポートしているノードへPodが配置されることを保証するために、各ノードは`runtimeclass.scheduling.nodeSelector`フィールドによって選択される共通のラベルを持つべきです。
|
特定のRuntimeClassをサポートしているノードへPodが配置されることを保証するために、各ノードは`runtimeclass.scheduling.nodeSelector`フィールドによって選択される共通のラベルを持つべきです。
|
||||||
RuntimeClassのnodeSelectorはアドミッション機能によりPodのnodeSelectorに統合され、効率よくノードを選択します。
|
RuntimeClassのnodeSelectorはアドミッション機能によりPodのnodeSelectorに統合され、効率よくノードを選択します。
|
||||||
|
|
@ -138,40 +134,20 @@ RuntimeClassのnodeSelectorはアドミッション機能によりPodのnodeSele
|
||||||
もしサポートされているノードが他のRuntimeClassのPodが稼働しないようにtaint付与されていた場合、RuntimeClassに対して`tolerations`を付与することができます。
|
もしサポートされているノードが他のRuntimeClassのPodが稼働しないようにtaint付与されていた場合、RuntimeClassに対して`tolerations`を付与することができます。
|
||||||
`nodeSelector`と同様に、tolerationsはPodのtolerationsにアドミッション機能によって統合され、効率よく許容されたノードを選択します。
|
`nodeSelector`と同様に、tolerationsはPodのtolerationsにアドミッション機能によって統合され、効率よく許容されたノードを選択します。
|
||||||
|
|
||||||
ノードの選択とtolerationsについての詳細は[ノード上へのPodのスケジューリング](/ja/docs/concepts/configuration/assign-pod-node/)を参照してください。
|
ノードの選択とtolerationsについての詳細は[ノード上へのPodのスケジューリング](/docs/concepts/scheduling-eviction/assign-pod-node/)を参照してください。
|
||||||
|
|
||||||
[アドミッションコントローラー]: /docs/reference/access-authn-authz/admission-controllers/
|
|
||||||
|
|
||||||
### Podオーバーヘッド
|
### Podオーバーヘッド
|
||||||
|
|
||||||
{{< feature-state for_k8s_version="v1.16" state="alpha" >}}
|
{{< feature-state for_k8s_version="v1.18" state="beta" >}}
|
||||||
|
|
||||||
Kubernetes 1.16ではRuntimeClassは[`PodOverhead`](/docs/concepts/configuration/pod-overhead/)機能の一部である、Podが稼働する時に関連するオーバーヘッドを指定することをサポートしています。
|
Podが稼働する時に関連する_オーバーヘッド_リソースを指定できます。オーバーヘッドを宣言すると、クラスター(スケジューラーを含む)がPodとリソースに関する決定を行うときにオーバーヘッドを考慮することができます。
|
||||||
`PodOverhead`を使うためには、PodOverhead[フィーチャーゲート](/ja/docs/reference/command-line-tools-reference/feature-gates/)を有効にしなければなりません。(デフォルトではoffです)
|
Podオーバーヘッドを使うためには、PodOverhead[フィーチャーゲート](/ja/docs/reference/command-line-tools-reference/feature-gates/)を有効にしなければなりません。(デフォルトではonです)
|
||||||
|
|
||||||
PodのオーバーヘッドはRuntimeClass内の`Overhead`フィールドによって定義されます。
|
PodのオーバーヘッドはRuntimeClass内の`overhead`フィールドによって定義されます。
|
||||||
このフィールドを使用することで、RuntimeClassを使用して稼働するPodのオーバーヘッドを指定することができ、Kubernetes内部で使用されるオーバーヘッドを確保することができます。
|
このフィールドを使用することで、RuntimeClassを使用して稼働するPodのオーバーヘッドを指定することができ、Kubernetes内部で使用されるオーバーヘッドを確保することができます。
|
||||||
|
|
||||||
### RutimeClassをα版からβ版にアップグレードする
|
|
||||||
|
|
||||||
RuntimeClassのβ版の機能は、下記の変更点を含みます。
|
## {{% heading "次の項目" %}}
|
||||||
|
|
||||||
- `node.k8s.io`APIグループと`runtimeclasses.node.k8s.io`リソースはCustomResourceDefinitionからビルトインAPIへとマイグレーションされました。
|
|
||||||
- `spec`はRuntimeClassの定義内にインライン化されました(RuntimeClassSpecはすでにありません)。
|
|
||||||
- `runtimeHandler`フィールドは`handler`にリネームされました。
|
|
||||||
- `handler`フィールドは、全てのAPIバージョンにおいて必須となりました。これはα版のAPIでの`runtimeHandler`フィールドもまた必須であることを意味します。
|
|
||||||
- `handler`フィールドは正しいDNSラベルの形式である必要があり([RFC 1123](https://tools.ietf.org/html/rfc1123))、これは`.`文字はもはや含むことができないことを意味します(全てのバージョンにおいて)。有効なハンドラー名は、次の正規表現に従います。`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`
|
|
||||||
|
|
||||||
**Action Required:** 次のアクションはRuntimeClassのα版からβ版へのアップグレードにおいて対応が必須です。
|
|
||||||
|
|
||||||
- RuntimeClassリソースはKubernetes v1.14にアップグレードされた*後に* 再作成されなくてはなりません。そして`runtimeclasses.node.k8s.io`というCRDは手動で削除されるべきです。
|
|
||||||
```
|
|
||||||
kubectl delete customresourcedefinitions.apiextensions.k8s.io runtimeclasses.node.k8s.io
|
|
||||||
```
|
|
||||||
- `runtimeHandler`の指定がないか、もしくは空文字の場合や、ハンドラー名に`.`文字列が使われている場合はα版のRuntimeClassにおいてもはや有効ではありません。正しい形式のハンドラー設定に変更しなくてはなりません(先ほど記載した内容を確認ください)。
|
|
||||||
|
|
||||||
|
|
||||||
### 参考文献
|
|
||||||
|
|
||||||
- [RuntimeClassデザイン](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/runtime-class.md)
|
- [RuntimeClassデザイン](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/runtime-class.md)
|
||||||
- [RuntimeClassスケジューリングデザイン](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/runtime-class-scheduling.md)
|
- [RuntimeClassスケジューリングデザイン](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/runtime-class-scheduling.md)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue