Skip to content

Commit

Permalink
First Japanese l10n work for release-1.14 (kubernetes#16115)
Browse files Browse the repository at this point in the history
* Translate concepts/workloads/pods/pod/ in Japanese (kubernetes#13671)

* [ja] Copy en/docs/concepts/workloads/pods/pod.md into ja/

* [ja] Translate docs/concepts/workloads/pods/pod/

* [ja] Modify translation of docs/concepts/workloads/pods/pod/

Reflect review - add trailing 'ー' to some technical terms

* [ja] Fix translation of 'Persistent Volumes' (kubernetes#13848)

s/永続化ボリューム/永続ボリューム/g

* Translated cron-jobs.md in Japanese (kubernetes#13937)

* Translate cron-jobs.md in Japanese (kubernetes#13392)

* Update cron-jobs.md

* Create automated-tasks-with-cron-jobs.md in Japanese directory

* Fix translation (kubernetes#13392)

* Translate cron-jobs.md in Japanese (kubernetes#13392)

* Update cron-jobs.md

* Create automated-tasks-with-cron-jobs.md in Japanese directory

* Revert "Create automated-tasks-with-cron-jobs.md in Japanese directory"

This reverts commit 739b014.

* Revert "Create automated-tasks-with-cron-jobs.md in Japanese directory"

This reverts commit 739b014.

* Fix conflict (kubernetes#13392)

* Revert "Revert "Create automated-tasks-with-cron-jobs.md in Japanese directory""

This reverts commit c5fc9d9.

* Revert "Revert "Revert "Create automated-tasks-with-cron-jobs.md in Japanese directory"""

This reverts commit 095e760.

* Fix that as it was pointed out (kubernetes#13392)

* Delete double same sesntence (kubernetes#13392)

* copy includes directory (kubernetes#14020)

* Translate docs/home/_index.md into Japanese (kubernetes#14068) (kubernetes#14074)

* Translate concepts/overview/components.md into Japanese (kubernetes#14067)

* Translate glossaries used in concepts/overview/components.md into Japanese (kubernetes#14044)

* Translate concepts/overview/components.md into Japanese (kubernetes#14044)

* Translate tasks/run-application/run-single-instance-stateful-application/ in Japanese (kubernetes#13668)

* Translate tasks/run-application/run-single-instance-stateful-application/ in Japanese

* Apply suggestions from code review

Co-Authored-By: sotoiwa <[email protected]>

* Better translation from code review

* Translate tasks/access-application-cluster/service-access-application-cluster/ in Japanese (kubernetes#13701)

* Update fluentd image (kubernetes#13661)

Signed-off-by: ialidzhikov <[email protected]>

* update zh kubelet-config-file doc (kubernetes#13495)

* update zh kubelet-config-file doc

* change kubelet config types address

* add space between en words and zh words

* revert en version change

* correct container hyperlinks in init container (kubernetes#12387)

* correct container hyperlinks in init container

* correct zh trans and update anchor inside page

* Incorrect details about startingDeadlineSeconds.. (kubernetes#13530)

On this page, the default value of startingDeadlineSeconds is mentioned as 100 seconds which is not true. So removing this statement.

* Fix typos (kubernetes#13376)

* add Nokia case study (kubernetes#13676)

* Fix typo in API page (kubernetes#13687)

Associated with kubernetes#13686

* fix typo in pod-lifecycle (kubernetes#13689)

Asscociated with kubernetes#13688

* issue 13383

* modify the link part

* Revert "modify the link part"

This reverts commit 2ae91dc.

* Revert "Revert "modify the link part""

This reverts commit e5b80b6.

* Revert "Revert "Revert "modify the link part"""

This reverts commit 427916e.

* Revert "Merge remote-tracking branch 'origin/master' into issue_13383"

This reverts commit 98099d8, reversing
changes made to 969e7f3.

* modify the link part

*  Translate /concepts/overview/working-with-objects/kubernetes-objects/ into Japanese (kubernetes#14025)

* Translate /concepts/overview/working-with-objects/kubernetes-objects/ into Japanese (kubernetes#13952)

* Apply suggestions to /concepts/overview/working-with-objects/kubernetes-objects/ from code review

Co-Authored-By: nasa9084 <[email protected]>

* Translate concepts/overview/working-with-objects/names.md into Japanese (kubernetes#14066)

* Translate content/ja/docs/concepts/overview/working-with-objects/names.md into Japanese

* Translate docs/reference/glossary/name.md into Japanese

* Translate docs/reference/glossary/uid.md into Japanese

* Apply suggestions to concepts/overview/working-with-objects/names.md from review comments

* Translate concepts/overview/kubernetes-api.md into Japanese (kubernetes#14343)

* Translate concepts/overview/kubernetes-api.md into Japanese

* Update translations for concepts/overview/kubernetes-api.md

* Translate overview/working-with-objects/labels.md in Japanese (kubernetes#14183) (kubernetes#14319)

* Translate overview/working-with-objects/labels.md in Japanese (kubernetes#14183)

* Update translations for concepts/overview/working-with-objects/labels.md.

* Translate concepts/workloads/pods/pod-overview/ in Japanese (kubernetes#14426) (kubernetes#14494)

* Translate concepts/workloads/pods/pod-overview/ in Japanese (kubernetes#14426)

* Update translation for concepts/workloads/pods/pod-overview.md.

* Translate overview/working-with-objects/field-selectors.md in Japanese (kubernetes#14350) (kubernetes#14535)

* Translate overview/working-with-objects/field-selectors.md in Japanese (kubernetes#14350)

* Update translations for concepts/overview/working-with-objects/field-selectors.md.

* Update translation for concepts/overview/working-with-objects/field-selectors.md

* Translate overview/working-with-objects/common-labels/ in Japanese (kubernetes#14397) (kubernetes#14403)

* Translate overview/working-with-objects/common-labels/ in Japanese (kubernetes#14397)

* Update translation for concepts/overview/working-with-objects/common-labels.md

* Translate concepts/storage/volume-snapshot-classes/ in Japanese (kubernetes#14846) (kubernetes#14849)

* ja-trans: tasks/run-application/run-stateless-application-deployment/ (kubernetes#14955)

* ja-trans: tasks/run-application/run-stateless-application-deployment/

* modify "exploring" translation

* ja-trans: concepts/containers/container-environment-variables/ (kubernetes#14116)

* ja-trans: concepts/containers/container-environment-variables/

* removed redundant expressions

* ja-trans: Translate tasks/debug-application-cluster/get-shell-running… (kubernetes#14146)

* ja-trans: Translate tasks/debug-application-cluster/get-shell-running-container/ kubernetes#13381

* Update content/ja/docs/tasks/debug-application-cluster/get-shell-running-container.md

Fix typo

Co-Authored-By: nasa9084 <[email protected]>

* ja-trans: concepts/containers/container-lifecycle-hooks/ (kubernetes#14169)

* ja-trans: tasks/debug-application-cluster/debug-init-containers/ (kubernetes#14488)

* ja-trans: tasks/debug-application-cluster/debug-init-containers/

* modified traslation of should

* Translate concepts/workloads/controllers/replicaset/ in Japanese (kubernetes#14634) (kubernetes#14641)

* Translate concepts/workloads/controllers/replicaset.md in Japanese (kubernetes#14634)

* Improve japanese translation in concepts/workloads/controllers/replicaset.md (kubernetes#14634)

* Improve japanese translation in concepts/workloads/controllers/replicaset.md (kubernetes#14634)

* Translate concepts/overview/working-with-objects/annotations/ in Japanese (kubernetes#13382) (kubernetes#14396)

* Translate overview/working-with-objects/annotations.md in Japanese (kubernetes#13382)

* Delete a empty line in concepts/overview/working-with-objects/annotations.md (kubernetes#13382)

* Update translation for concepts/overview/working-with-objects/anotations.md

* ja-trans: tasks/run-application/scale-stateful-set/ (kubernetes#15289)

* [ja] Fix translation of 'Persistent Volumes' (kubernetes#13848)

s/永続化ボリューム/永続ボリューム/g

* ja-trans: tasks/run-application/scale-stateful-set/

* Update content/ja/docs/tasks/run-application/scale-stateful-set.md

Co-Authored-By: nasa9084 <[email protected]>

* Update content/ja/docs/tasks/run-application/scale-stateful-set.md

Co-Authored-By: nasa9084 <[email protected]>

* added postpositional particle

* ja-trans: tasks/debug-application-cluster/debug-stateful-set/ (kubernetes#15282)

* [ja] Fix translation of 'Persistent Volumes' (kubernetes#13848)

s/永続化ボリューム/永続ボリューム/g

* ja-trans: tasks/debug-application-cluster/debug-stateful-set/

* ja-trans: tasks/debug-application-cluster/determine-reason-pod-failure/ (kubernetes#14939)

* [ja] Fix translation of 'Persistent Volumes' (kubernetes#13848)

s/永続化ボリューム/永続ボリューム/g

* ja-trans: tasks/debug-application-cluster/determine-reason-pod-failure/

* ja-trans: unify the ending of sentences

* follow the master branch update

* reflect a suggestion and modify translation of container

* ja-trans: tasks/run-application/delete-stateful-set/ (kubernetes#15293)

* [ja] Fix translation of 'Persistent Volumes' (kubernetes#13848)

s/永続化ボリューム/永続ボリューム/g

* ja-trans: tasks/run-application/delete-stateful-set/

* Update content/ja/docs/tasks/run-application/delete-stateful-set.md

Co-Authored-By: nasa9084 <[email protected]>

* Update content/ja/docs/tasks/run-application/delete-stateful-set.md

Co-Authored-By: nasa9084 <[email protected]>

* Update content/ja/docs/tasks/run-application/delete-stateful-set.md

Co-Authored-By: nasa9084 <[email protected]>

* Update content/ja/docs/tasks/run-application/delete-stateful-set.md

Co-Authored-By: nasa9084 <[email protected]>

* modified traslation of backing

* ja-trans: tasks/configure-pod-container/attach-handler-lifecycle-event/ (kubernetes#14328)

* Translate overview/working-with-objects/namespaces.md in Japanese (kubernetes#14045) (kubernetes#14161)

* Translate overview/working-with-objects/namespaces.md in Japanese (kubernetes#14045)

* Update translations for concepts/overview/working-with-objects/namespaces.md

* ja-trans: fix Japanese Translation in concepts/overview/working-with-objects/namespaces.md (kubernetes#14045)

* ja-trans: includes/default-storage-class-prereqs.md (kubernetes#15376)

* ja-trans: includes/default-storage-class-prereqs.md

* Update content/ja/includes/default-storage-class-prereqs.md

Co-Authored-By: nasa9084 <[email protected]>

* Translate tasks/run-application/run-replicated-stateful-application/ in Japanese (kubernetes#15368)

* Translate tasks/run-application/run-replicated-stateful-application/ in Japanese

* add a base document in english

* Update content/ja/docs/tasks/run-application/run-replicated-stateful-application.md

Co-Authored-By: nasa9084 <[email protected]>

* Update content/ja/docs/tasks/run-application/run-replicated-stateful-application.md

Co-Authored-By: nasa9084 <[email protected]>

* Update content/ja/docs/tasks/run-application/run-replicated-stateful-application.md

Co-Authored-By: Kohei Ota <[email protected]>

* small fixs

「複製」という言葉を使わず「レプリケーション」と「クローン」に使い分けるように変更。
「ステートフルなアプリケーション」を「ステートフルアプリケーション」に変更。

* small fix

* Translate concepts/workloads/pods/init-containers.md in Japanese (kubernetes#14543) (kubernetes#14576)

* Translate concepts/workloads/pods/init-containers.md in Japanese (kubernetes#14543)

* Improve japanese translation in concepts/workloads/pods/init-containers.md (kubernetes#14543)

* Add new line in ja/concepts/workloads/pods/init-containers.md (kubernetes#14543)

* Add new line in ja/concepts/workloads/pods/init-containers.md (kubernetes#14543)

* translate contribute/_index.md to japanese. (kubernetes#15406)

* translate contribute/_index.md to japanese.

* trim spaces.

* Add missing translation.

* Translate concepts/workloads/controllers/daemonset/ in Japanese kubernetes#14761 (kubernetes#14767)

* Translate concepts/workloads/controllers/daemonset/ in Japanese (kubernetes#14761)

* ja-trans: Improve Japanese translation in concepts/workloads/controllers/daemonset.md (kubernetes#14767)

* Translate concepts/workloads/controllers/garbage-collection/ in Japanese (kubernetes#14718)  (kubernetes#14720)

* Translate concepts/workloads/controllers/garbage-collection/ in Japanese (kubernetes#14718)

* ja-trans: Improve Japanese translation in concepts/workloads/controllers/garbage-collection.md (kubernetes#14718)

* Translate concepts/workloads/pods/podpreset/ in Japanese (kubernetes#14544) (kubernetes#14581)

* Translate concepts/workloads/pods/podpreset.md in Japanese (kubernetes#14544)

* Update translation for concepts/workloads/pods/podpreset.md.

* ja-trans: Improve Japanese translation in concepts/workloads/pods/podpreset (kubernetes#14544)

* ja-trans: Improve Japanese translation in concepts/workloads/pods/podpreset (kubernetes#14544)

* ja-trans: Delete translated sentence in concepts/workloads/pods/podpreset (kubernetes#14544)

* ja-trans: Delete duplicated sentence in concepts/workloads/pods/podpreset (kubernetes#14544)

* Translate concepts/containers/runtime-class/ in Japanese (kubernetes#14670) (kubernetes#14673)

* Translate concepts/containers/runtime-class.md in Japanese (kubernetes#14670)

* ja-trans: Improve Japanese translation in concepts/containers/runtime-class.md (kubernetes#14670)

* Translate concepts/services-networking/dns-pod-service/ in Japanese kubernetes#14777 (kubernetes#14805)

* Translate concepts/services-networking/dns-pod-service/ in Japanese (kubernetes#14777)

* ja-trans: Improve Japanese translation in concepts/services-networking/dns-pod-service.md (kubernetes#14777)

* Translate concepts/workloads/controllers/statefulset/ in Japanese kubernetes#14679 (kubernetes#14696)

* Translate concepts/workloads/controllers/statefulset.md in Japanese (kubernetes#14679)

* ja-trans: Improve Japanese translation in concepts/workloads/controllers/statefulset.md (kubernetes#14679)

* ja-trans: Improve some Japanese translation in concepts/workloads/controllers/statefulset.md (kubernetes#14679)

* ja-trans: Improve some titles in concepts/workloads/controllers/statefulset.md (kubernetes#14679)

* ja-trans: Improve some Japanese translations in concepts/workloads/controllers/statefulset.md (kubernetes#14679)

* Translate concepts/workloads/controllers/ttlafterfinished/ in Japanese kubernetes#14734 (kubernetes#14735)

* Translate concepts/workloads/controllers/ttlafterfinished/ in Japanese (kubernetes#14734)

* ja-trans: Improve Japanese translation in concepts/workloads/controllers/ttlafterfinished.md (kubernetes#14734)

* ja-trans: Delete some Japanese words in concepts/workloads/controllers/ttlafterfinished.md (kubernetes#14734)

*  ja-trans: Fix typo in concepts/workloads/controllers/ttlafterfinished.md (kubernetes#14734)

* Translate concepts/storage/dynamic-provisioning/ in Japanese kubernetes#14847 (kubernetes#14916)

* Translate concepts/storage/dynamic-provisioning/ in Japanese (kubernetes#14847)

* ja-trans: Improve Japanese translation in concepts/storage/dynamic-provisioning.md (kubernetes#14847)

* ja-trans: Improve some Japanese translation in concepts/storage/dynamic-provisioning.md (kubernetes#14847)

* ja-trans: Improve some Japanese translations in concepts/storage/dynamic-provisioning.md (kubernetes#14847)
  • Loading branch information
cstoku authored and wahyuoi committed Sep 9, 2019
1 parent 20c4994 commit 42469b6
Show file tree
Hide file tree
Showing 66 changed files with 6,944 additions and 27 deletions.
5 changes: 5 additions & 0 deletions content/ja/docs/concepts/containers/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: "Containers"
weight: 40
---

Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: コンテナ環境変数
content_template: templates/concept
weight: 20
---

{{% capture overview %}}

このページでは、コンテナ環境で利用可能なリソースについて説明します。

{{% /capture %}}


{{% capture body %}}

## コンテナ環境

Kubernetesはコンテナにいくつかの重要なリソースを提供します。

* イメージと1つ以上のボリュームの組み合わせのファイルシステム
* コンテナ自体に関する情報
* クラスター内の他のオブジェクトに関する情報

### コンテナ情報

コンテナの *ホスト名* は、コンテナが実行されているPodの名前です。
ホスト名は`hostname`コマンドまたはlibcの[`gethostname`](http://man7.org/linux/man-pages/man2/gethostname.2.html)関数呼び出しにより利用可能です。

Podの名前と名前空間は[downward API](/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/)を通じて環境変数として利用可能です。

Pod定義からのユーザー定義の環境変数もコンテナで利用できます。
Dockerイメージで静的に指定されている環境変数も同様です。

### クラスター情報

コンテナの作成時に実行されていたすべてのサービスのリストは、環境変数として使用できます。
これらの環境変数はDockerリンクの構文と一致します。

*bar* という名前のコンテナに対応する *foo* という名前のサービスの場合、以下の変数が定義されています。

```shell
FOO_SERVICE_HOST=<サービスが実行されているホスト>
FOO_SERVICE_PORT=<サービスが実行されているポート>
```

サービスは専用のIPアドレスを持ち、[DNSアドオン](http://releases.k8s.io/{{< param "githubbranch" >}}/cluster/addons/dns/)が有効の場合、DNSを介してコンテナで利用可能です。

{{% /capture %}}

{{% capture whatsnext %}}

* [コンテナライフサイクルフック](/docs/concepts/containers/container-lifecycle-hooks/)の詳細
* [コンテナライフサイクルイベントへのハンドラー紐付け](/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/)のハンズオン

{{% /capture %}}
104 changes: 104 additions & 0 deletions content/ja/docs/concepts/containers/container-lifecycle-hooks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
title: コンテナライフサイクルフック
content_template: templates/concept
weight: 30
---

{{% capture overview %}}

このページでは、kubeletにより管理されるコンテナがコンテナライフサイクルフックフレームワークを使用して、管理ライフサイクル中にイベントによって引き起こされたコードを実行する方法について説明します。

{{% /capture %}}


{{% capture body %}}

## 概要

Angularなどのコンポーネントライフサイクルフックを持つ多くのプログラミング言語フレームワークと同様に、Kubernetesはコンテナにライフサイクルフックを提供します。
フックにより、コンテナは管理ライフサイクル内のイベントを認識し、対応するライフサイクルフックが実行されたときにハンドラーに実装されたコードを実行できます。

## コンテナフック

コンテナに公開されている2つのフックがあります。

`PostStart`

このフックはコンテナが作成された直後に実行されます。
しかし、フックがコンテナのENTRYPOINTの前に実行されるという保証はありません。
ハンドラーにパラメーターは渡されません。

`PreStop`

このフックは、liveness probeの失敗、プリエンプション、リソース競合などのAPI要求または管理イベントが原因でコンテナが終了する直前に呼び出されます。コンテナが既に終了状態または完了状態にある場合、preStopフックの呼び出しは失敗します。
これはブロッキング、つまり同期的であるため、コンテナを削除するための呼び出しを送信する前に完了する必要があります。
ハンドラーにパラメーターは渡されません。

終了動作の詳細な説明は、[Termination of Pods](/docs/concepts/workloads/pods/pod/#termination-of-pods)にあります。

### フックハンドラーの実装

コンテナは、フックのハンドラーを実装して登録することでそのフックにアクセスできます。
コンテナに実装できるフックハンドラーは2種類あります。

* Exec - コンテナのcgroupsと名前空間の中で、 `pre-stop.sh`のような特定のコマンドを実行します。
コマンドによって消費されたリソースはコンテナに対してカウントされます。
* HTTP - コンテナ上の特定のエンドポイントに対してHTTP要求を実行します。

### フックハンドラーの実行

コンテナライフサイクル管理フックが呼び出されると、Kubernetes管理システムはそのフック用に登録されたコンテナ内のハンドラーを実行します。

フックハンドラーの呼び出しは、コンテナを含むPodのコンテキスト内で同期しています。
これは、`PostStart`フックの場合、コンテナのENTRYPOINTとフックは非同期に起動することを意味します。
しかし、フックの実行に時間がかかりすぎたりハングしたりすると、コンテナは`running`状態になることができません。

その振る舞いは `PreStop`フックに似ています。
実行中にフックがハングした場合、Podフェーズは`Terminating`状態に留まり、Podの`terminationGracePeriodSeconds`が終了した後に終了します。
`PostStart`または`PreStop`フックが失敗した場合、コンテナを強制終了します。

ユーザーはフックハンドラーをできるだけ軽量にするべきです。
ただし、コンテナを停止する前に状態を保存する場合など、長時間実行されるコマンドが意味をなす場合があります。

### フック配送保証

フックの配送は *少なくとも1回* を意図しています。これはフックが`PostStart``PreStop`のような任意のイベントに対して複数回呼ばれることがあることを意味します。
これを正しく処理するのはフックの実装次第です。

通常、単一の配送のみが行われます。
たとえば、HTTPフックレシーバーがダウンしていてトラフィックを受け取れない場合、再送信は試みられません。
ただし、まれに二重配送が発生することがあります。
たとえば、フックの送信中にkubeletが再起動した場合、kubeletが起動した後にフックが再送信される可能性があります。

### フックハンドラーのデバッグ

フックハンドラーのログは、Podのイベントには表示されません。
ハンドラーが何らかの理由で失敗した場合は、イベントをブロードキャストします。
`PostStart`の場合、これは`FailedPostStartHook`イベントで、`PreStop`の場合、これは`FailedPreStopHook`イベントです。
これらのイベントは `kubectl describe pod <pod_name>`を実行することで見ることができます。
このコマンドの実行によるイベントの出力例をいくつか示します。

```
Events:
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
1m 1m 1 {default-scheduler } Normal Scheduled Successfully assigned test-1730497541-cq1d2 to gke-test-cluster-default-pool-a07e5d30-siqd
1m 1m 1 {kubelet gke-test-cluster-default-pool-a07e5d30-siqd} spec.containers{main} Normal Pulling pulling image "test:1.0"
1m 1m 1 {kubelet gke-test-cluster-default-pool-a07e5d30-siqd} spec.containers{main} Normal Created Created container with docker id 5c6a256a2567; Security:[seccomp=unconfined]
1m 1m 1 {kubelet gke-test-cluster-default-pool-a07e5d30-siqd} spec.containers{main} Normal Pulled Successfully pulled image "test:1.0"
1m 1m 1 {kubelet gke-test-cluster-default-pool-a07e5d30-siqd} spec.containers{main} Normal Started Started container with docker id 5c6a256a2567
38s 38s 1 {kubelet gke-test-cluster-default-pool-a07e5d30-siqd} spec.containers{main} Normal Killing Killing container with docker id 5c6a256a2567: PostStart handler: Error executing in Docker Container: 1
37s 37s 1 {kubelet gke-test-cluster-default-pool-a07e5d30-siqd} spec.containers{main} Normal Killing Killing container with docker id 8df9fdfd7054: PostStart handler: Error executing in Docker Container: 1
38s 37s 2 {kubelet gke-test-cluster-default-pool-a07e5d30-siqd} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "main" with RunContainerError: "PostStart handler: Error executing in Docker Container: 1"
1m 22s 2 {kubelet gke-test-cluster-default-pool-a07e5d30-siqd} spec.containers{main} Warning FailedPostStartHook
```

{{% /capture %}}

{{% capture whatsnext %}}

* [コンテナ環境](/docs/concepts/containers/container-environment-variables/)の詳細
* [コンテナライフサイクルイベントへのハンドラー紐付け](/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/)のハンズオン


{{% /capture %}}
142 changes: 142 additions & 0 deletions content/ja/docs/concepts/containers/runtime-class.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---
reviewers:
title: ランタイムクラス(Runtime Class)
content_template: templates/concept
weight: 20
---

{{% capture overview %}}

{{< feature-state for_k8s_version="v1.14" state="beta" >}}

このページではRuntimeClassリソースと、runtimeセクションのメカニズムについて説明します。

{{< warning >}}
RuntimeClassはKubernetes1.14のβ版アップグレードにおいて*破壊的な* 変更を含んでいます。もしユーザーがKubernetes1.14以前のバージョンを使っていた場合、[RuntimeClassのα版からβ版へのアップグレード](#upgrading-runtimeclass-from-alpha-to-beta)を参照してください。
{{< /warning >}}

{{% /capture %}}


{{% capture body %}}

## RuntimeClassについて

RuntimeClassはコンテナランタイムの設定を選択するための機能です。そのコンテナランタイム設定はPodのコンテナを稼働させるために使われます。

### セットアップ

RuntimeClass機能のFeature Gateが有効になっていることを確認してください(デフォルトで有効です)。Feature Gateを有効にする方法については、[Feature
Gates](/docs/reference/command-line-tools-reference/feature-gates/)を参照してください。
その`RuntimeClass`のFeature GateはApiServerとkubeletのどちらも有効になっていなければなりません。

1. ノード上でCRI実装を設定する。(ランタイムに依存)
2. 対応するRuntimeClassリソースを作成する。

#### 1. ノード上でCRI実装を設定する。

RuntimeClassを通じて利用可能な設定はContainer Runtime Interface (CRI)の実装依存となります。
ユーザーの環境のCRI実装の設定方法は、対応するドキュメント([下記](#cri-configuration))を参照ください。

{{< note >}}
RuntimeClassは現時点において、クラスター全体で同じ種類のNode設定であることを仮定しています。(これは全てのNodeがコンテナランタイムに関して同じ方法で構成されていることを意味します)。
設定が異なるNodeに関しては、スケジューリング機能を通じてRuntimeClassとは独立して管理されなくてはなりません。([PodをNodeに割り当てる方法](/docs/concepts/configuration/assign-pod-node/)を参照して下さい)。
{{< /note >}}

RuntimeClassの設定は、RuntimeClassによって参照される`ハンドラー`名を持ちます。そのハンドラーは正式なDNS-1123に準拠する形式のラベルでなくてはなりません(英数字 + `-`の文字で構成されます)。

#### 2. 対応するRuntimeClassリソースを作成する

ステップ1にて設定する各項目は、関連する`ハンドラー` 名を持ちます。それはどの設定かを指定するものです。各ハンドラーにおいて、対応するRuntimeClassオブジェクトが作成されます。

そのRuntimeClassリソースは現時点で2つの重要なフィールドを持ちます。それはRuntimeClassの名前(`metadata.name`)とハンドラー(`handler`)です。そのオブジェクトの定義は下記のようになります。

```yaml
apiVersion: node.k8s.io/v1beta1 # RuntimeClassはnode.k8s.ioというAPIグループで定義されます。
kind: RuntimeClass
metadata:
name: myclass # RuntimeClass名
# RuntimeClassはネームスペースなしのリソースです。
handler: myconfiguration # 対応するCRI設定
```
{{< note >}}
RuntimeClassの書き込み操作(create/update/patch/delete)はクラスター管理者のみに制限されることを推奨します。
これはたいていデフォルトで有効となっています。さらなる詳細に関しては[Authorization
Overview](/docs/reference/access-authn-authz/authorization/)を参照してください。
{{< /note >}}
### 使用例
一度RuntimeClassがクラスターに対して設定されると、それを使用するのは非常に簡単です。PodSpecの`runtimeClassName`を指定してください。
例えば

```yaml
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
runtimeClassName: myclass
# ...
```

これは、Kubeletに対してPodを稼働させるためのRuntimeClassを使うように指示します。もし設定されたRuntimeClassが存在しない場合や、CRIが対応するハンドラーを実行できない場合、そのPodは`Failed`という[フェーズ](/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase)になります。
エラーメッセージに関しては対応する[イベント](/docs/tasks/debug-application-cluster/debug-application-introspection/)を参照して下さい。

もし`runtimeClassName`が指定されていない場合、デフォルトのRuntimeHandlerが使用され、これはRuntimeClassの機能が無効であるときのふるまいと同じものとなります。

### CRIの設定

CRIランタイムのセットアップに関するさらなる詳細は、[CRIのインストール](/docs/setup/cri/)を参照してください。

#### dockershim

Kubernetesのビルトインのdockershim CRIは、ランタイムハンドラーをサポートしていません。

#### [containerd](https://containerd.io/)

ランタイムハンドラーは、`/etc/containerd/config.toml`にあるcontainerdの設定ファイルにより設定されます。
正しいハンドラーは、その`runtime`セクションで設定されます。

```
[plugins.cri.containerd.runtimes.${HANDLER_NAME}]
```
containerdの設定に関する詳細なドキュメントは下記を参照してください。
https://github.com/containerd/cri/blob/master/docs/config.md
#### [cri-o](https://cri-o.io/)
ランタイムハンドラーは、`/etc/crio/crio.conf`にあるcri-oの設定ファイルにより設定されます。
正しいハンドラーは[crio.runtime
table](https://github.com/kubernetes-sigs/cri-o/blob/master/docs/crio.conf.5.md#crioruntime-table)で設定されます。
```
[crio.runtime.runtimes.${HANDLER_NAME}]
runtime_path = "${PATH_TO_BINARY}"
```
cri-oの設定に関する詳細なドキュメントは下記を参照してください。
https://github.com/kubernetes-sigs/cri-o/blob/master/cmd/crio/config.go
### RutimeClassをα版からβ版にアップグレードする
RuntimeClassのβ版の機能は、下記の変更点を含みます。
- `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においてもはや有効ではありません。正しい形式のハンドラー設定に変更しなくてはなりません(先ほど記載した内容を確認ください)。
{{% /capture %}}
Loading

0 comments on commit 42469b6

Please sign in to comment.