[Serverless Knative] Knative Docs - Configuring targets

Targets

Configuring a target provide the Autoscaler with a value that it tries to maintain for the configured metric for a revision. See the metrics - https://knative.dev/docs/serving/autoscaling/autoscaling-metrics/ documentation for more information about configurable metric types.

The target annotation, used to configure per-revision targets, is metric agnostic. This means the target is simply an integer value, which can be applied for any metric type.

Configuring targets

  • Global settings key: container-concurrency-target-default. For more information, see the documentation on metrics - https://knative.dev/docs/serving/autoscaling/autoscaling-metrics/.

  • Per-revision annotation key: autoscaling.knative.dev/target

  • Possible values: An integer (metric agnostic).

  • Default: "100" for container-concurrency-target-default. There is no default value set for the target annotation.

Target annotation - Per-revision

1
2
3
4
5
6
7
8
9
10
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/target: "50"

Concurrency target - Global (ConfigMap)

1
2
3
4
5
6
7
apiVersion: v1
kind: ConfigMap
metadata:
name: config-autoscaler
namespace: knative-serving
data:
container-concurrency-target-default: "200"

apiVersion: operator.knative.dev/v1alpha1

1
2
3
4
5
6
7
kind: KnativeServing
metadata:
name: knative-serving
spec:
config:
autoscaler:
container-concurrency-target-default: "200"

References

[1] Configuring targets - Knative - https://knative.dev/docs/serving/autoscaling/autoscaling-targets/

[2] Home - Knative - https://knative.dev/docs/

[3] metrics - https://knative.dev/docs/serving/autoscaling/autoscaling-metrics/

[4] About autoscaling - Knative - https://knative.dev/docs/serving/autoscaling/