Skip to content

Knative Serving release v0.3.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@mattmoor mattmoor released this 09 Jan 04:42
· 1 commit to release-0.3 since this release

Meta

More regular releases

0.3 is the first release of our new schedule of releasing every 6 weeks.
This release is a smaller delta than 0.2 because of this shorter development cycle.

Kubernetes 1.11 is now required

We now use the Kubernetes /status sub-resource support, which went Beta in K8s 1.11.

Autoscaling

More aggressive scale to zero

We will now scale Revisions down to zero pods after only 30 seconds of inactivity.

Support for HPA-class autoscaler (Kubecon Demo)

You may now opt to use the Kubernetes HPA for autoscaling Revisions, if you want to scale on CPU instead of request rate. HPA-class Revisions will not scale to zero.

Support target and window annotations for KPA-class autoscaler

You may now tune the default Knative autoscaler (KPA) with revision-level concurrency targets and different windows over which to calculate average concurrency.

Support mutable PodAutoscalers

You may now mutate PodAutoscaler specs in-place to adjust the scale bounds and other parameters. The changes will be picked up dynamically by KPA and HPA-class autoscalers.

Core API

Support of “resources” block (thanks @jszroberto)

You may now specify the resources section of a container spec to include reservations and limits on the resources your service may use. This also lets your Service gain access to GPUs, if available on your cluster.

Elide Builds for config-only changes

We will now skip the Build step of a deployment if only the configuration of a Revision changes (e.g. env var).

Revisions can now specify TimeoutSeconds

Requests that show no activity within the allotted timeout will be cancelled and respond with a 503.

Inactive isn’t failed!

Fixed an issue in 0.2 where Services, Configurations, and Revisions that were scaled to zero would appear to have failed. The “Active” condition is now treated as a purely informational condition.

A Container Port can now be specified for incoming traffic

You may now specify a single 'containerPort' to customize which port will receive request traffic. If unspecified, the default port (8080) will be assumed. As with previous releases, this value is available to the container through the environment variable '$PORT'.

More Global Resyncs

Editing the Serving ConfigMaps will now immediately trigger all existing resources to reconcile, and reflect any newly configured settings. This avoids the (up to 10 hour) delay that would otherwise exist waiting for the normal resync.

Networking

Use the default gateway istio-ingressgateway by default (@lichuqiang)

We have deprecated the Knative copy of the Istio ingress gateway.
Routes can be exposed to additional Gateways.

Routes without external domain are exposed only to local Gateways

Route that only have svc.cluster.local domain suffix will not be exposed to Istio ingress gateway by default.
Users can set the label
serving.knative.dev/visibility=cluster-local on a Route or Service to achieve the same effect.

Reconcile ClusterIngress' based on Ingress class annotation (@greghaynes)

ClusterIngress class annotation is taken into account when reconciling. The default ClusterIngress reconciler only reconcile when the type is Istio.

Bug fixes:

#2359 (@lichuqiang) Conflict between Routes having the same names causing issue.
#2582 (@markusthoemmes) Correct Revision Timeout meaning.

Monitoring

Metrics improvements

New metrics are added for Knative reconciler
Metric labels were renamed to be consistent across all Knative components
Knative control plane (reconciler, autoscaler & activator) metrics can now be exported to Stackdriver backend

Logging improvements

Commit id of the running build is added to the logs generated by Knative components