From bdc7ab86ecd8059e304c968fed234eab8d36a599 Mon Sep 17 00:00:00 2001 From: Kento Yagisawa Date: Thu, 4 Jun 2020 16:14:29 +0900 Subject: [PATCH 1/4] Update pod-lifecycle.md for v1.17 --- .../concepts/workloads/pods/pod-lifecycle.md | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md b/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md index f15348f443..be38978d6a 100644 --- a/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md +++ b/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md @@ -53,7 +53,6 @@ PodCondition配列の各要素には、次の6つのフィールドがありま * `PodScheduled`: PodがNodeにスケジュールされました。 * `Ready`: Podはリクエストを処理でき、一致するすべてのサービスの負荷分散プールに追加されます。 * `Initialized`: すべての[init containers](/docs/concepts/workloads/pods/init-containers)が正常に実行されました。 - * `Unschedulable`: リソースの枯渇やその他の理由で、Podがスケジュールできない状態です。 * `ContainersReady`: Pod内のすべてのコンテナが準備できた状態です。 @@ -80,7 +79,7 @@ Handlerには次の3つの種類があります: * Failure: コンテナの診断が失敗しました。 * Unknown: コンテナの診断が失敗し、取れるアクションがありません。 -Kubeletは2種類のProbeを実行中のコンテナで行い、また反応することができます: +Kubeletは3種類のProbeを実行中のコンテナで行い、また反応することができます: * `livenessProbe`: コンテナが動いているかを示します。 livenessProbe に失敗すると、kubeletはコンテナを殺します、そしてコンテナは[restart policy](#restart-policy)に従います。 @@ -91,7 +90,14 @@ Kubeletは2種類のProbeを実行中のコンテナで行い、また反応す initial delay前のデフォルトのreadinessProbeの初期値は`Failure`です。 コンテナにreadinessProbeが設定されていない場合、デフォルトの状態は`Success`です。 -### livenessProbeとreadinessProbeをいつ使うべきか? {#when-should-you-use-a-liveness-probe} +* `startupProbe`: コンテナ内のアプリケーションが起動したかどうかを示します。 + startupProbeが設定された場合、完了するまでその他のすべてのProbeは無効になります。 + startupProbeに失敗すると、kubeletはコンテナを殺します、そしてコンテナは[restart policy](#restart-policy)に従います。 + コンテナにstartupProbeが設定されていない場合、デフォルトの状態は`Success`です。 + +### livenessProbeをいつ使うべきか? {#when-should-you-use-a-liveness-probe} + +{{< feature-state for_k8s_version="v1.0" state="stable" >}} コンテナ自体に問題が発生した場合や状態が悪くなった際にクラッシュすることができれば livenessProbeは不要です。この場合kubeletが自動でPodの`restartPolicy`に基づいたアクションを実行します。 @@ -99,6 +105,10 @@ livenessProbeは不要です。この場合kubeletが自動でPodの`restartPoli Probeに失敗したときにコンテナを殺したり再起動させたりするには、 livenessProbeを設定し`restartPolicy`をAlwaysまたはOnFailureにします。 +### readinessProbeをいつ使うべきか? {#when-should-you-use-a-readiness-probe} + +{{< feature-state for_k8s_version="v1.0" state="stable" >}} + Probeが成功したときにのみPodにトラフィックを送信したい場合は、readinessProbeを指定します。 この場合readinessProbeはlivenessProbeと同じになる可能性がありますが、 readinessProbeが存在するということは、Podがトラフィックを受けずに開始され、Probe成功が開始した後でトラフィックを受け始めることになります。 @@ -111,8 +121,17 @@ Podが削除されたときにリクエストを来ないようにするため Podの削除時にはreadinessProbeが存在するかどうかに関係なくPodは自動的に自身をunhealthyにします。 Pod内のコンテナが停止するのを待つ間Podはunhealthyのままです。 -livenessProbeまたはreadinessProbeを設定する方法の詳細については、 -[Configure Liveness and Readiness Probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/)を参照してください +### startupProbeをいつ使うべきか? {#when-should-you-use-a-startup-probe} + +{{< feature-state for_k8s_version="v1.16" state="alpha" >}} + +コンテナの起動時間が `initialDelaySeconds + failureThreshold × periodSeconds` よりも長い場合は、livenessProveと同じエンドポイントをチェックするためにstartupProbeを指定します。 +`periodSeconds`のデフォルトは30秒です。 + +`failureThreshold` は、livenessProbeのデフォルト値を変更せずに、コンテナが起動するのに十分な値に設定します。これによりデッドロックを防ぐことができます。 + +livenessProbe、readinessProbeまたはstartupProbeを設定する方法の詳細については、 +[Configure Liveness, Readiness and Startup Probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)を参照してください。 ## Podとコンテナのステータス {#pod-and-container-status} @@ -137,7 +156,7 @@ Pod内のコンテナごとにStateの項目として表示されます。 ... ``` -* `Running`: コンテナが問題なく実行されていることを示します。コンテナがRunningに入ると`postStart`フック(もしあれば)が実行されます。この状態にはコンテナが実行中状態に入った時刻も表示されます。 +* `Running`: コンテナが問題なく実行されていることを示します。コンテナがRunning状態に入る前に`postStart`フック(もしあれば)が実行されます。この状態にはコンテナが実行中状態に入った時刻も表示されます。 ```yaml ... @@ -201,10 +220,6 @@ status: PodのReadinessの評価へのこの変更を容易にするために、新しいPod Conditionである`ContainersReady`が導入され、古いPodの`Ready`条件を取得します。 -K8s 1.1ではAlpha機能のため"Pod Ready++" 機能は`PodReadinessGates` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/)にて明示的に指定する必要があります。 - -K8s 1.12ではこの機能はデフォルトで有効になっています。 - ## RestartPolicy {#restart-policy} PodSpecには、Always、OnFailure、またはNeverのいずれかの値を持つ`restartPolicy`フィールドがあります。 @@ -324,7 +339,7 @@ spec: * [attaching handlers to Container lifecycle events](/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/)のハンズオンをやってみる -* [configuring liveness and readiness probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/)のハンズオンをやってみる +* [Configure Liveness, Readiness and Startup Probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)のハンズオンをやってみる * [Container lifecycle hooks](/docs/concepts/containers/container-lifecycle-hooks/)についてもっと学ぶ From ee11f4aaa892b188afec8e7dc80df8fb9dcd352a Mon Sep 17 00:00:00 2001 From: hiyokotaisa Date: Thu, 4 Jun 2020 17:08:40 +0900 Subject: [PATCH 2/4] typo of livenessProbe Co-authored-by: Naoki Oketani --- content/ja/docs/concepts/workloads/pods/pod-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md b/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md index be38978d6a..19acaec982 100644 --- a/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md +++ b/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md @@ -125,7 +125,7 @@ Pod内のコンテナが停止するのを待つ間Podはunhealthyのままで {{< feature-state for_k8s_version="v1.16" state="alpha" >}} -コンテナの起動時間が `initialDelaySeconds + failureThreshold × periodSeconds` よりも長い場合は、livenessProveと同じエンドポイントをチェックするためにstartupProbeを指定します。 +コンテナの起動時間が `initialDelaySeconds + failureThreshold × periodSeconds` よりも長い場合は、livenessProbeと同じエンドポイントをチェックするためにstartupProbeを指定します。 `periodSeconds`のデフォルトは30秒です。 `failureThreshold` は、livenessProbeのデフォルト値を変更せずに、コンテナが起動するのに十分な値に設定します。これによりデッドロックを防ぐことができます。 From e0e9b1e46f18f939964f017cc0c2ef41ab7eb37c Mon Sep 17 00:00:00 2001 From: hiyokotaisa Date: Thu, 4 Jun 2020 17:09:23 +0900 Subject: [PATCH 3/4] link docs to japanese version Co-authored-by: Naoki Oketani --- content/ja/docs/concepts/workloads/pods/pod-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md b/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md index 19acaec982..cfd8fcb859 100644 --- a/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md +++ b/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md @@ -131,7 +131,7 @@ Pod内のコンテナが停止するのを待つ間Podはunhealthyのままで `failureThreshold` は、livenessProbeのデフォルト値を変更せずに、コンテナが起動するのに十分な値に設定します。これによりデッドロックを防ぐことができます。 livenessProbe、readinessProbeまたはstartupProbeを設定する方法の詳細については、 -[Configure Liveness, Readiness and Startup Probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)を参照してください。 +[Configure Liveness, Readiness and Startup Probes](/ja/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)を参照してください。 ## Podとコンテナのステータス {#pod-and-container-status} From 386623edd2893bd2efaec8f76d7641149332c204 Mon Sep 17 00:00:00 2001 From: hiyokotaisa Date: Thu, 4 Jun 2020 17:09:31 +0900 Subject: [PATCH 4/4] link docs to japanese version Co-authored-by: Naoki Oketani --- content/ja/docs/concepts/workloads/pods/pod-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md b/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md index cfd8fcb859..08c1f572ee 100644 --- a/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md +++ b/content/ja/docs/concepts/workloads/pods/pod-lifecycle.md @@ -339,7 +339,7 @@ spec: * [attaching handlers to Container lifecycle events](/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/)のハンズオンをやってみる -* [Configure Liveness, Readiness and Startup Probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)のハンズオンをやってみる +* [Configure Liveness, Readiness and Startup Probes](/ja/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)のハンズオンをやってみる * [Container lifecycle hooks](/docs/concepts/containers/container-lifecycle-hooks/)についてもっと学ぶ