第38章 アプリケーションのアイドリング
38.1. 概要
OpenShift Container Platform 管理者は、アプリケーションをアイドリング状態にしてリソース消費を減らすことができます。これは、コストがリソース消費と関連付けられるパブリッククラウドにデプロイされている場合に役立ちます。
スケーラブルなリソースが使用されていない場合、OpenShift Container Platform はリソースを検出した後にそれらを 0 レプリカに設定してアイドリングします。ネットワークトラフィックがリソースに送信される場合、レプリカをスケールアップしてアイドリング解除を実行し、操作を続行します。
アプリケーションは複数のサービスやデプロイメント設定などの他のスケーラブルななリソースで構成されています。アプリケーションのアイドリングには、関連するすべてのリソースのアイドリングを実行することが関係します。
38.2. アプリケーションのアイドリング
アプリケーションのアイドリングには、サービスに関連付けられたスケーラブルなリソース (デプロイメント設定、レプリケーションコントローラーなど) を検索することが必要です。アプリケーションのアイドルリングには、サービスを検索してこれをアイドリング状態としてマークし、リソースを zero レプリカにスケールダウンすることが関係します。
oc idle
コマンドを実行して単一サービスのアイドリングを実行するか、または --resource-names-file
オプションを使用して複数サービスのアイドリングを実行できます。
38.2.1. 単一サービスのアイドリング
以下のコマンドを使用して単一サービスをアイドリングします。
$ oc idle <service>
38.2.2. 複数サービスのアイドリング
必要なサービスの一覧を作成し、--resource-names-file
オプションを oc idle
コマンドで使用することで複数サービスをアイドリングします。
これは、アプリケーションがプロジェクト内の一連のサービスにまたがる場合や、同じプロジェクト内で複数のアプリケーションを一括してアイドリングするため、複数サービスをスクリプトを併用してアイドリングする場合に役立ちます。
- 複数サービスの一覧を含むテキストファイルを作成します (それぞれを各行に指定)。
--resource-names-file
オプションを使用してサービスをアイドリングします。$ oc idle --resource-names-file <filename>
idle コマンドは単一プロジェクトに制限されます。クラスター全体でアプリケーションをアイドリングするには、各プロジェクトに対して idle コマンドをそれぞれ実行します。
38.3. アプリケーションのアイドリング解除
アプリケーションサービスは、ネットワークトラフィックを受信し、直前の状態に再びスケールアップすると再びアクティブになります。これには、サービスへのトラフィックとルートを通るトラフィックの両方が含まれます。
アプリケーションのアイドリング解除はリソースをスケールアップすることで手動で実行できます。たとえば、deploymentconfig をスケールアップするには、以下のコマンドを実行します。
$ oc scale --replicas=1 dc <deploymentconfig>
現時点で、ルーターによる自動アイドルリング解除はデフォルトの HAProxy ルーターのみでサポートされています。