forked from kubernetes/website
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Translate tasks/run-application/force-delete-stateful-set-pod/ in Jap…
…anese (kubernetes#15835) * ja-trans: tasks/run-application/force-delete-stateful-set-pod/ * Update content/ja/docs/tasks/run-application/force-delete-stateful-set-pod.md Co-Authored-By: nasa9084 <[email protected]> * Update content/ja/docs/tasks/run-application/force-delete-stateful-set-pod.md Co-Authored-By: nasa9084 <[email protected]> * Update content/ja/docs/tasks/run-application/force-delete-stateful-set-pod.md * Update content/ja/docs/tasks/run-application/force-delete-stateful-set-pod.md
- Loading branch information
Showing
1 changed file
with
77 additions
and
0 deletions.
There are no files selected for viewing
77 changes: 77 additions & 0 deletions
77
content/ja/docs/tasks/run-application/force-delete-stateful-set-pod.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
--- | ||
title: StatefulSet Podの強制削除 | ||
content_template: templates/task | ||
weight: 70 | ||
--- | ||
|
||
{{% capture overview %}} | ||
このページでは、StatefulSetの一部であるPodを削除する方法と、削除する際に考慮すべき事項について説明します。 | ||
{{% /capture %}} | ||
|
||
{{% capture prerequisites %}} | ||
|
||
* これはかなり高度なタスクであり、StatefulSetに固有のいくつかの特性に反する可能性があります。 | ||
* 先に進む前に、以下に列挙されている考慮事項をよく理解してください。 | ||
{{% /capture %}} | ||
|
||
{{% capture steps %}} | ||
|
||
## StatefulSetに関する考慮事項 | ||
|
||
StatefulSetの通常の操作では、StatefulSet Podを強制的に削除する必要は**まったく**ありません。StatefulSetコントローラーは、StatefulSetのメンバーの作成、スケール、削除を行います。それは序数0からN-1までの指定された数のPodが生きていて準備ができていることを保証しようとします。StatefulSetは、クラスター内で実行されている特定のIDを持つ最大1つのPodがいつでも存在することを保証します。これは、StatefulSetによって提供される*最大1つの*セマンティクスと呼ばれます。 | ||
|
||
手動による強制削除は、StatefulSetに固有の最大1つのセマンティクスに違反する可能性があるため、慎重に行う必要があります。StatefulSetを使用して、安定したネットワークIDと安定した記憶域を必要とする分散型およびクラスター型アプリケーションを実行できます。これらのアプリケーションは、固定IDを持つ固定数のメンバーのアンサンブルに依存する構成を持つことがよくあります。同じIDを持つ複数のメンバーを持つことは悲惨なことになり、データの損失につながる可能性があります(例:定足数ベースのシステムでのスプリットブレインシナリオ)。 | ||
|
||
## Podの削除 | ||
|
||
次のコマンドで正常なPod削除を実行できます: | ||
|
||
```shell | ||
kubectl delete pods <pod> | ||
``` | ||
|
||
上記がグレースフルターミネーションにつながるためには、`pod.Spec.TerminationGracePeriodSeconds`に0を指定しては**いけません**。`pod.Spec.TerminationGracePeriodSeconds`を0秒に設定することは安全ではなく、StatefulSet Podには強くお勧めできません。グレースフル削除は安全で、kubeletがapiserverから名前を削除する前に[Podが適切にシャットダウンする](/docs/user-guide/pods/#termination-of-pods)ことを保証します。 | ||
|
||
Kubernetes(バージョン1.5以降)は、Nodeにアクセスできないという理由だけでPodを削除しません。到達不能なNodeで実行されているPodは、[タイムアウト](/docs/admin/node/#node-condition)の後に`Terminating`または`Unknown`状態になります。到達不能なNode上のPodをユーザーが適切に削除しようとすると、Podはこれらの状態に入ることもあります。そのような状態のPodをapiserverから削除することができる唯一の方法は以下の通りです: | ||
|
||
* (ユーザーまたは[Node Controller](/docs/admin/node)によって)Nodeオブジェクトが削除されます。<br/> | ||
* 応答していないNodeのkubeletが応答を開始し、Podを終了してapiserverからエントリーを削除します。<br/> | ||
* ユーザーによりPodを強制削除します。 | ||
|
||
推奨されるベストプラクティスは、1番目または2番目のアプローチを使用することです。Nodeが死んでいることが確認された(例えば、ネットワークから恒久的に切断された、電源が切られたなど)場合、Nodeオブジェクトを削除します。Nodeがネットワークパーティションに苦しんでいる場合は、これを解決するか、解決するのを待ちます。パーティションが回復すると、kubeletはPodの削除を完了し、apiserverでその名前を解放します。 | ||
|
||
通常、PodがNode上で実行されなくなるか、管理者によってそのNodeが削除されると、システムは削除を完了します。あなたはPodを強制的に削除することでこれを無効にすることができます。 | ||
|
||
### 強制削除 | ||
|
||
強制削除はPodが終了したことをkubeletから確認するまで**待ちません**。強制削除がPodの削除に成功したかどうかに関係なく、apiserverから名前をすぐに解放します。これにより、StatefulSetコントローラーは、同じIDを持つ交換Podを作成できます。これは、まだ実行中のPodの複製につながる可能性があり、そのPodがまだStatefulSetの他のメンバーと通信できる場合、StatefulSetが保証するように設計されている最大1つのセマンティクスに違反します。 | ||
|
||
StatefulSetのPodを強制的に削除するということは、問題のPodがStatefulSet内の他のPodと再び接触することはなく、代わりのPodを作成するために名前が安全に解放されることを意味します。 | ||
|
||
バージョン1.5以上のkubectlを使用してPodを強制的に削除する場合は、次の手順を実行します: | ||
|
||
```shell | ||
kubectl delete pods <pod> --grace-period=0 --force | ||
``` | ||
|
||
バージョン1.4以下のkubectlを使用している場合、`--force`オプションを省略する必要があります: | ||
|
||
```shell | ||
kubectl delete pods <pod> --grace-period=0 | ||
``` | ||
|
||
これらのコマンドを実行した後でもPodが`Unknown`状態のままになっている場合は、次のコマンドを使用してPodをクラスターから削除します: | ||
|
||
```shell | ||
kubectl patch pod <pod> -p '{"metadata":{"finalizers":null}}' | ||
``` | ||
|
||
StatefulSet Podの強制削除は、常に慎重に、関連するリスクを完全に把握して実行してください。 | ||
|
||
{{% /capture %}} | ||
|
||
{{% capture whatsnext %}} | ||
|
||
[StatefulSetのデバッグ](/docs/tasks/debug-application-cluster/debug-stateful-set/)の詳細 | ||
|
||
{{% /capture %}} |