This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第43章 アプリケーションの一時ストレージのサイジング
43.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
このセクションは、OpenShift Container Platform 3.10 で一時ストレージのテクノロジープレビューを有効化した場合にのみ適用されます。この機能は、デフォルトでは無効になっています。この機能を有効にするには、「一時ストレージの設定」を参照してください。
テクノロジープレビューリリースは、Red Hat 製品のサービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全でない可能性があり、Red Hat では実稼働環境での使用を推奨しません。テクノロジープレビュー機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様に機能性をテストしていただき、開発プロセス中にフィードバックをお寄せいただくことを目的としています。Red Hat テクノロジープレビュー機能のサポート対象範囲に関する詳しい情報は、「テクノロジプレビュー機能のサポート範囲」を参照してください。
以下の目的で一時ストレージを使用できます。
- コンテナー化されたアプリケーションコンポーネントの一時ストレージおよびリスク要件を判別し、それらの要件を満たすようコンテナーの一時ストレージパラメーターを設定する
- コンテナー化されたアプリケーションランタイム (OpenJDK など) を、設定されたコンテナーの一時ストレージパラメーターに基づいて最適に実行されるよう設定する
- コンテナーでの実行に関連するメモリー関連のエラー状態を診断し、これを解決する
43.2. 背景情報 リンクのコピーリンクがクリップボードにコピーされました!
一時ストレージを使用する前に、OpenShift Container Platform が「コンピュートリソース」をどのように使用するかを確認します。
アプリケーション一時ストレージのサイジングについては、以下が主要なポイントになります。
それぞれの種類のリソース (メモリー、cpu、ストレージ、一時ストレージ) については、OpenShift Container Platform ではオプションの 要求 および 制限 の値を Pod の各コンテナーに設定できます。
- 一時ストレージの要求
一時ストレージの要求値を指定する場合には、OpenShift Container Platform スケジューラーに影響があります。スケジューラーは、コンテナーのノードへのスケジュール時に一時ストレージ要求を考慮し、選択されたノード上で、要求された一時ストレージをフェンスオフして、コンテナーで使用できるようにします。
- 一時ストレージの制限
- 一時ストレージの制限値を指定する場合には、コンテナーの全プロセスに割り当て可能なメモリーにハード制限を指定します。
一時ストレージ要求と制限の両方を指定する場合には、一時ストレージの制限値は、メモリー要求値以上の値に指定する必要があります。
- 管理
- クラスター管理者は、一時ストレージの要求値、制限値、これらの両方に対してクォータを割り当てるか、いずれにも割り当てないようにすることができます。
- クラスター管理者は、一時ストレージの要求値、制限値またはこれらの両方についてデフォルト値を割り当てることも、それらのいずれにもデフォルト値を割り当てないようにすることもできます。
- クラスター管理者は、クラスターのオーバーコミットを管理するために、開発者が指定する一時ストレージの要求値を上書きできます。これは OpenShift Online などで行われます。
43.3. ストラテジー リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform でアプリケーションの一時ストレージをサイジングするには、以下を行います。
コンテナーの一時ストレージで必要とされる使用量を判断します。
管理者が OpenShift Container Platform 3.10 で一時ストレージのテクノロジープレビュー機能を有効化している場合には、必要時に予想される平均およびピーク時のコンテナーのメモリー使用を判別します (例: 別の負荷テストを実行)。コンテナーで並行して実行されている可能性のあるすべてのプロセスを必ず考慮に入れるようにしてください。たとえば、メインのアプリケーションが作業ファイルやロギングに一時ストレージを必要とする可能性のある付属スクリプトを生成するかどうかを確認します。
エビクションのリスクを評価します。
エビクションのリスク選好を判別します。リスク選好のレベルが低い場合、コンテナーは予想されるピーク時の使用量と安全マージンの割合に応じて一時ストレージを要求します。リスク選好が高くなる場合には、予想される平均の使用量に応じて一時ストレージを要求することがより適切な場合があります。
コンテナーの一時ストレージ要求を設定します。
リスク評価に基づいてコンテナーの一時ストレージ要求を設定します。要求がアプリケーションの一時ストレージの使用状況がより正確に表現されるほうが望ましく、要求が高すぎる場合には、クラスターのクォータ使用状況が非効率で、要求が低すぎる場合には、アプリケーションのエビクションの可能性が高くなります。
必要に応じて、コンテナーの一時ストレージの制限を設定します。
必要に応じて、コンテナーの一時ストレージ制限を設定します。制限を設定すると、コンテナーの全プロセスで使用される一時ストレージの合計が制限を超えると、コンテナーのプロセスを即座に停止するという影響があります。たとえば、コンテナーは、一時ストレージの使用量が予期せずに超過することが早い段階で明確になる (つまり、フェイルファースト) か、コンテナーがプロセスを突然中止する可能性があります。
注記一部の OpenShift Container Platform クラスターでは制限値を設定する必要があります。制限に基づいて要求を上書きする場合があります。また、一部のアプリケーションイメージは、要求値よりも検出が簡単なことから設定される制限値に依存します。
これらの制限が設定されている場合には、ピーク時に予想されるコンテナーリソースの使用量に、安全マージンの割合を加えた数値よりも少なく設定しないようにしてください。
アプリケーションを調整します。
適切な場合は、設定した要求および制限値に関連してアプリケーションが調整されていることを確認します。この手順は、JVM などのメモリーをプールするアプリケーションにおいてとくに当てはまります。
43.4. エビクトされた Pod の診断 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、ノードの一時ストレージがいっぱになると、ノードから pod をエビクトする場合があります。一時ストレージの消費の割合によって、エビクションが正常に行われる場合もあれば、行われない場合もあります。正常なエビクションでは、各コンテナーの主なプロセス、PID 1 は SIGTERM シグナルを受信し、少し時間が経ってからプロセスがまだ実行されている場合には SIGKILL シグナルを受信します。正常でないエビクションでは、各コンポーネントの主要プロセスが即座に SIGKILL シグナルを受信します。
全 pod の一覧を取得してステータスの確認をするには、以下を実行します。
エビクトされた Pod のフェーズは Failed に、理由 は Evicted になります。この場合には、restartPolicy の値に関係なく再起動されません。ただし、 ReplicationController などのコントローラーは Pod の失敗したステータスを認識し、古い Pod を置き換える新しい Pod を作成します。