Stay organized with collections
Save and categorize content based on your preferences.
Learn how to set the maximum number of container instances that can be used for
your Knative serving service. Specifying maximum instances in
Knative serving allows you to limit the scaling of your service in
response to incoming requests. Use this setting as a way to control your costs
or to limit the number of connections to a backing service, such as to a
database.
For more information on the way Knative serving autoscales
container instances, refer to
Instance autoscaling.
Setting and updating maximum instances
Any configuration change leads to the
creation of a new revision. Subsequent revisions will also automatically get
this configuration setting unless you make explicit updates to change it.
By default, the number of container instances can scale infinitely. You can set
an upper bound for the maximum number of instances using the
Google Cloud console, or the Google Cloud CLI when you deploy a new
service or update an existing service and
deploy a revision:
Console
Go to Knative serving in the Google Cloud console:
Click Create Service if you are configuring a
new service you are deploying to. If you are configuring an
existing service, click on the service, then click
Edit & Deploy New Revision.
Under Advanced settings, click Container.
In the field labelled Maximum number of
instances, specify the desired maximum number of container
instances.
Click Next to continue to the next section.
In the Configure how this service is triggered section,
select which connectivity you would like to use to invoke the service.
Click Create to deploy the image to Knative serving and wait
for the deployment to finish.
Command line
For existing services, set the maximum number of container instances by
running the gcloud run services update command with the
--max-instances
parameter:
IMAGE_URL with a reference to the container image, for
example, gcr.io/myproject/my-image:latest.
MAX-VALUE with the desired maximum number of
container instances. Specify default to clear any maximum instance
setting.
YAML
You can download the configuration of an existing service into a
YAML file with the gcloud run services describe command by using the
--format=export flag.
You can then modify that YAML file and deploy
those changes with the gcloud beta run services replace command.
You must ensure that you modify only the specified attributes.
Download the configuration of your service into a file named
service.yaml on local workspace:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eKnative serving allows you to set a maximum number of container instances to control service scaling, which can help manage costs and limit connections to backing services.\u003c/p\u003e\n"],["\u003cp\u003eThe maximum number of container instances can be set when creating a new service or updating an existing one, and this configuration is carried over to subsequent revisions unless explicitly changed.\u003c/p\u003e\n"],["\u003cp\u003eYou can specify the maximum number of instances through the Google Cloud console by navigating to the container settings in either new service creation or existing service editing.\u003c/p\u003e\n"],["\u003cp\u003eThe Google Cloud CLI can be used to set or update the maximum instances using the \u003ccode\u003egcloud run services update\u003c/code\u003e command for existing services and the \u003ccode\u003egcloud run deploy\u003c/code\u003e command for new services, both utilizing the \u003ccode\u003e--max-instances\u003c/code\u003e parameter.\u003c/p\u003e\n"],["\u003cp\u003eYAML configuration files can be used to manage the \u003ccode\u003eautoscaling.knative.dev/maxScale\u003c/code\u003e attribute for advanced control, but caution should be used to avoid conflicts with other management methods.\u003c/p\u003e\n"]]],[],null,["# Setting a maximum number of container instances\n\nLearn how to set the maximum number of container instances that can be used for\nyour Knative serving service. Specifying maximum instances in\nKnative serving allows you to limit the scaling of your service in\nresponse to incoming requests. Use this setting as a way to control your costs\nor to limit the number of connections to a backing service, such as to a\ndatabase.\n\nFor more information on the way Knative serving autoscales\ncontainer instances, refer to\n[Instance autoscaling](/anthos/run/archive/docs/instance-autoscaling).\n\nSetting and updating maximum instances\n--------------------------------------\n\nAny configuration change leads to the\ncreation of a new revision. Subsequent revisions will also automatically get\nthis configuration setting unless you make explicit updates to change it.\n\nBy default, the number of container instances can scale infinitely. You can set\nan upper bound for the maximum number of instances using the\nGoogle Cloud console, or the Google Cloud CLI when you deploy a new\n[service](/anthos/run/archive/docs/deploying#service) or update an existing service and\ndeploy a [revision](/anthos/run/archive/docs/deploying#revision): \n\n### Console\n\n\n1. Go to Knative serving in the Google Cloud console:\n\n [Go to Knative serving](https://console.cloud.google.com/kubernetes/run)\n2. Click **Create Service** if you are configuring a\n new service you are deploying to. If you are configuring an\n existing service, click on the service, then click\n **Edit \\& Deploy New Revision**.\n\n3. Under *Advanced settings* , click **Container**.\n\n4. In the field labelled *Maximum number of\n instances*, specify the desired maximum number of container\n instances.\n\n5. Click **Next** to continue to the next section.\n\n6. In the **Configure how this service is triggered** section,\n select which connectivity you would like to use to invoke the service.\n\n7. Click **Create** to deploy the image to Knative serving and wait\n for the deployment to finish.\n\n### Command line\n\n- For existing services, set the maximum number of container instances by\n running the `gcloud run services update` command with the\n [`--max-instances`](/sdk/gcloud/reference/run/services/update#--max-instances)\n parameter:\n\n ```bash\n gcloud run services update SERVICE --max-instances MAX-VALUE\n ```\n\n Replace:\n - \u003cvar translate=\"no\"\u003eSERVICE\u003c/var\u003e with the name of your service.\n - \u003cvar translate=\"no\"\u003eMAX-VALUE\u003c/var\u003e with the desired maximum number of container instances. Specify `default` to clear any maximum instance setting.\n- For new services, set the maximum number of container instances by running\n the `gcloud run deploy` command with the\n [`--max-instances`](/sdk/gcloud/reference/run/deploy#--max-instances)\n parameter:\n\n ```bash\n gcloud run deploy SERVICE --image=IMAGE_URL --max-instances MAX-VALUE\n ```\n\n Replace:\n - \u003cvar translate=\"no\"\u003eSERVICE\u003c/var\u003e with the name of your service.\n - \u003cvar translate=\"no\"\u003eIMAGE_URL\u003c/var\u003e with a reference to the container image, for example, `gcr.io/myproject/my-image:latest`.\n - \u003cvar translate=\"no\"\u003eMAX-VALUE\u003c/var\u003e with the desired maximum number of container instances. Specify `default` to clear any maximum instance setting.\n\n### YAML\n\n| **Caution:** Deploying configuration changes using YAML files replaces the configuration of your existing services. Since a YAML file completely overwrites all configurations, you should avoid using multiple methods to modify your services. For example, do not use YAML files in conjunction with the Google Cloud console or `gcloud` commands.\n\nYou can download the configuration of an existing service into a\nYAML file with the `gcloud run services describe` command by using the\n[`--format=export`](/sdk/gcloud/reference/run/services/describe) flag.\nYou can then modify that YAML file and deploy\nthose changes with the `gcloud beta run services replace` command.\nYou must ensure that you modify only the specified attributes.\n\n1. Download the configuration of your service into a file named\n `service.yaml` on local workspace:\n\n ```bash\n gcloud run services describe SERVICE --format export \u003e service.yaml\n ```\n\n Replace \u003cvar translate=\"no\"\u003eSERVICE\u003c/var\u003e with the name of your\n Knative serving service.\n2. In your local file, update the `autoscaling.knative.dev/maxScale:`\n attribute:\n\n ```yaml\n spec:\n template:\n metadata:\n annotations:\n autoscaling.knative.dev/maxScale: '\u003cvar translate=\"no\"\u003eMAX-INSTANCE\u003c/var\u003e' \n ```\n\n Replace\n - \u003cvar translate=\"no\"\u003eMAX-INSTANCE\u003c/var\u003e with the desired maximum number.\n3. Replace the service with its new configuration using the following command:\n\n ```bash\n gcloud beta run services replace service.yaml\n ```"]]