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.4.11. OpenShift Pipeline のコンピュートリソースクォータの設定
Red Hat OpenShift Pipelines の ResourceQuota
オブジェクトは、namespace ごとのリソース消費の合計を制御します。これを使用して、オブジェクトのタイプに基づいて、namespace で作成されたオブジェクトの数量を制限できます。さらに、コンピュートリソースクォータを指定して、namespace で消費されるコンピュートリソースの合計量を制限できます。
ただし、namespace 全体のクォータを設定するのではなく、パイプライン実行で作成される Pod が使用するコンピュートリソースの量を制限できます。現時点で、Red Hat OpenShift Pipelines ではパイプラインのコンピュートリソースクォータを直接指定できません。
4.11.1. OpenShift Pipeline でコンピュートリソース消費を制限する別の方法 リンクのコピーリンクがクリップボードにコピーされました!
パイプラインによるコンピュートリソースの使用量をある程度制御するためには、代わりに、以下のアプローチを検討してください。
タスクの各ステップでリソース要求および制限を設定します。
例: タスクのステップごとのリソース要求および制限設定
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
LimitRange
オブジェクトの値を指定して、リソース制限を設定します。LimitRange
の詳細は、制限範囲によるリソース消費の制限 を参照してください。 - パイプラインリソースの消費を減らします。
- プロジェクトごとにリソースクォータ を設定および管理します。
- 理想的には、パイプラインのコンピュートリソースクォータは、パイプライン実行で同時に実行される Pod が消費するコンピュートリソースの合計量と同じである必要があります。ただし、タスクを実行する Pod はユースケースに基づいてコンピュートリソースを消費します。たとえば、Maven ビルドタスクには、ビルドするアプリケーションごとに異なるコンピュートリソースが必要となる場合があります。その結果、一般的なパイプラインでタスクのコンピュートリソースクォータを事前に定義できません。コンピュートリソースの使用に関する予測可能性や制御性を高めるには、さまざまなアプリケーション用にカスタマイズされたパイプラインを使用します。
ユースケースにこれらの方法で対応できない場合には、優先順位クラスのリソースクォータを使用して回避策を実装できます。
4.11.2. 優先順位クラスを使用したパイプラインリソースクォータの指定 リンクのコピーリンクがクリップボードにコピーされました!
PriorityClass
オブジェクトは、優先順位クラス名を、相対的な優先順位を示す整数値にマッピングします。値が大きいと、クラスの優先度が高くなります。優先順位クラスの作成後に、仕様に優先順位クラス名を指定する Pod を作成できます。さらに、Pod の優先順位に基づいて、Pod によるシステムリソースの消費を制御できます。
パイプラインにリソースクォータを指定することは、パイプライン実行が作成する Pod のサブセットのリソースクォータを設定することに似ています。以下の手順では、優先順位クラスに基づいてリソースクォータを指定して回避策の例を提供します。
手順
パイプラインの優先順位クラスを作成します。
例: パイプラインの優先順位クラス
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パイプラインのリソースクォータを作成します。
例: パイプラインのリソースクォータ
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パイプラインのリソースクォータの使用量を確認します。
例: パイプラインのリソースクォータの使用の確認
oc describe quota
$ oc describe quota
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod が実行されていないため、クォータは使用されません。
パイプラインおよびタスクを作成します。
例: パイプラインの YAML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例: パイプラインのタスクの YAML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記パイプラインの全タスクが同じ優先順位クラスに属することを確認します。
パイプライン実行を作成して開始します。
例: パイプライン実行の YAML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod の作成後に、パイプライン実行のリソースクォータの使用状況を確認します。
例: パイプラインのリソースクォータの使用の確認
oc describe quota
$ oc describe quota
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力では、優先クラスごとのリソースクオータを指定することで、ある優先順位に所属する同時実行されている Pod すべてのリソースクオータをまとめて管理できることが分かります。