2.3. OpenShift Container Platform クラスターでの Pod の設定
Pod の最適なパフォーマンスと可用性を維持するために、管理者は Pod の再起動動作、ライフサイクル設定、リソース制限、Pod Disruption Budget、およびその他の動作を設定できます。これらの設定を使用することで、クラスターの耐障害性を確保しつつ、アプリケーション開発のための安定した環境を提供できます。
クラスターの効率性を維持することにより、1 回のみ実行するように設計された Pod をいつ再起動するか、Pod が利用できる帯域幅をいつ制限するか、中断時に Pod をどのように実行させ続けるかなど、Pod が終了するときの動作をツールとして使用して必要な数の Pod が常に実行されるようにし、開発者により良い環境を提供することができます。
2.3.1. 再起動後における Pod の動作方法の設定 リンクのコピーリンクがクリップボードにコピーされました!
Pod の再起動ポリシーを設定することで、その Pod 内のコンテナーが終了したときに OpenShift Container Platform がどのように応答するかを決定できます。適切な再起動ポリシーを設定することは、クラスターを効率的に稼働させ続ける上で役立ちます。
このポリシーは Pod のすべてのコンテナーに適用されます。
以下の値を使用できます。
-
Always- Pod で正常に終了したコンテナーの再起動を継続的に試みます。指数関数的なバックオフ遅延 (10 秒、20 秒、40 秒) は 5 分に制限されています。デフォルトはAlwaysです。 -
OnFailure: Pod で失敗したコンテナーの継続的な再起動を、5 分を上限として指数関数のバックオフ遅延 (10 秒、20 秒、40 秒) で試行します。 -
Never: Pod で終了したコンテナーまたは失敗したコンテナーの再起動を試行しません。Pod はただちに失敗し、終了します。
いったんノードにバインドされた Pod は別のノードにはバインドされなくなります。これは、Pod がノードの失敗後も存続するにはコントローラーが必要であることを示しています。
| 条件 | コントローラーのタイプ | 再起動ポリシー |
|---|---|---|
| 終了することが期待される Pod (バッチ計算など) | ジョブ |
|
| 終了しないことが期待される Pod (Web サーバーなど) | レプリケーションコントローラー |
|
| マシンごとに 1 回実行される Pod | デーモンセット | 任意 |
Pod のコンテナーが失敗し、再起動ポリシーが OnFailure に設定される場合、Pod はノード上に留まり、コンテナーが再起動します。コンテナーを再起動させない場合には、再起動ポリシーの Never を使用します。
Pod 全体が失敗すると、OpenShift Container Platform は新規 Pod を起動します。開発者は、アプリケーションが新規 Pod で再起動される可能性に対応しなくてはなりません。とくに、アプリケーションは、一時的なファイル、ロック、以前の実行で生じた未完成の出力などを処理する必要があります。
Kubernetes アーキテクチャーでは、クラウドプロバイダーからの信頼性のあるエンドポイントが必要です。クラウドプロバイダーが停止している場合、kubelet は OpenShift Container Platform が再起動されないようにします。
基礎となるクラウドプロバイダーのエンドポイントに信頼性がない場合は、クラウドプロバイダー統合を使用してクラスターをインストールしないでください。クラスターを、非クラウド環境で実行する場合のようにインストールします。インストール済みのクラスターで、クラウドプロバイダー統合をオンまたはオフに切り替えることは推奨されていません。
OpenShift Container Platform が失敗したコンテナーに再起動ポリシーを使用する方法の詳細は、Kubernetes ドキュメントの "Example States" を参照してください。