最小インスタンス数を構成して、サービスのアイドル インスタンスを有効にする方法について説明します。
デフォルトでは、Knative serving は受信リクエストの数に基づいたインスタンス数までスケーリングします。ただし、サービスでレイテンシを短縮する必要があり、コールド スタートの数を制限する場合は、いつでもリクエストを処理できるコンテナ インスタンスの最小数を指定して、このデフォルトの動作を変更できます。
この方法で実行されているインスタンスは課金対象になります。
リビジョンと最小インスタンス数
最小インスタンスで開始するのは、リビジョンでアドレス指定が可能な場合に限ります。次のいずれかに該当する場合は、リビジョンでアドレス指定が可能です。
- 一定の割合のトラフィックを受信している
- リビジョンタグが割り当てられている
最小インスタンスの設定と更新
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
デフォルトでは 0
が設定され、コンテナ インスタンスの min-instances
は無効になっています。このデフォルト値は、新しいサービスをデプロイするとき、または既存のサービスを更新してリビジョンをデプロイするときに、Google Cloud コンソールまたは Google Cloud CLI で変更できます。
コンソール
Google Cloud コンソールで Knative serving に移動します。
デプロイ先の新しいサービスを構成する場合は、[サービスを作成] をクリックします。既存のサービスを構成する場合は、そのサービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。
[詳細設定] で [コンテナ] をクリックします。
[インスタンスの最小数] フィールドに、ウォームアップ状態を維持し、リクエストを受信できるコンテナ インスタンスの数を指定します。
[次へ] をクリックして、次のセクションに進みます。
[このサービスをトリガーする方法の構成] セクションで、サービスを呼び出すために使用する接続を選択します。
[作成] をクリックしてイメージを Knative serving にデプロイし、デプロイの完了を待ちます。
コマンドライン
既存のサービスの場合は、
--min-instances
パラメータを指定してgcloud run services update
コマンドを実行し、コンテナ インスタンスの最小数を設定します。gcloud run services update SERVICE --min-instances MIN-VALUE
次のように置き換えます。
- SERVICE は、実際のサービスの名前に置き換えます。
- MIN-VALUE は、ウォーム状態を維持し、リクエストを受信できるコンテナ インスタンスの数に置き換えます。インスタンスの最小数の設定を消去するには、
default
を指定します。
新しいサービスの場合は、
--min-instances
パラメータを指定してgcloud run deploy
コマンドを実行し、コンテナ インスタンスの最小数を設定します。gcloud run deploy SERVICE --image=IMAGE_URL --min-instances MIN-VALUE
次のように置き換えます。
- SERVICE: 実際のサービスの名前。
- IMAGE_URL: コンテナ イメージへの参照(
gcr.io/cloudrun/hello
など)。 - MIN-VALUE は、ウォーム状態を維持し、リクエストを受信できるコンテナ インスタンスの数に置き換えます。インスタンスの最小数の設定を消去するには、
default
を指定します。
YAML
--format=export
フラグを使用して、gcloud run services describe
コマンドで既存のサービスの構成を YAML ファイルにダウンロードできます。次に YAML ファイルを変更し、gcloud run services replace
コマンドを使用してこれらの変更をデプロイします。指定した属性のみを変更する必要があります。
ローカル ワークスペースの
service.yaml
という名前のファイルにサービスの構成をダウンロードします。gcloud run services describe SERVICE --format export > service.yaml
SERVICE は、Knative serving サービスの名前に置き換えます。
ローカル ファイルで
autoscaling.knative.dev/minScale:
属性を更新します。spec: template: metadata: annotations: autoscaling.knative.dev/minScale: 'MIN-INSTANCE'
次のように置き換えます。
- MIN-VALUEcode> は、ウォーム状態を維持し、いつでもリクエストを受信できるようにしておくコンテナ インスタンスの数で置き換えます。インスタンスの最小数の設定を消去するには、
default
を指定します。
- MIN-VALUEcode> は、ウォーム状態を維持し、いつでもリクエストを受信できるようにしておくコンテナ インスタンスの数で置き換えます。インスタンスの最小数の設定を消去するには、
次のコマンドを使用して、サービスを新しい構成に置き換えます。
gcloud run services replace service.yaml