docs/serving
Ryan Gregg 609df7a5fd
Add sample (#108)
2018-07-11 14:03:41 -07:00
..
images Document installation and usage of logging, monitoring and tracing components (#92) 2018-07-10 12:39:19 -07:00
samples Add sample (#108) 2018-07-11 14:03:41 -07:00
README.md Add an overview for serving (#63) 2018-07-11 09:40:38 -07:00
accessing-logs.md Document installation and usage of logging, monitoring and tracing components (#92) 2018-07-10 12:39:19 -07:00
accessing-metrics.md Document installation and usage of logging, monitoring and tracing components (#92) 2018-07-10 12:39:19 -07:00
accessing-traces.md Document installation and usage of logging, monitoring and tracing components (#92) 2018-07-10 12:39:19 -07:00
debugging-application-issues.md Document installation and usage of logging, monitoring and tracing components (#92) 2018-07-10 12:39:19 -07:00
debugging-performance-issues.md Document installation and usage of logging, monitoring and tracing components (#92) 2018-07-10 12:39:19 -07:00
gke-assigning-static-ip-address.md Typo 2018-07-11 13:36:42 -07:00
installing-logging-metrics-traces.md Document installation and usage of logging, monitoring and tracing components (#92) 2018-07-10 12:39:19 -07:00
updating-existing-app.md Update updating-existing-app.md 2018-07-11 13:37:25 -07:00
using-a-custom-domain.md Update using-a-custom-domain.md 2018-07-11 13:08:20 -07:00

README.md

Knative Serving

Knative Serving builds on Kubernetes and Istio to support deploying and serving of serverless applications and functions. Serving is easy to get started with and scales to support advanced scenarios.

The Knative Serving project provides middleware primitives that enable:

  • Rapid deployment of serverless containers
  • Automatic scale up and down to zero
  • Routing and network programming for Istio components
  • Point in time snapshots of deployed code and configurations

Serving resources

Knative Serving defines a set of principled objects as Kubernetes Custom Resource Definitions (CRDs). These objects are used to define and control how your serverless workload behaves on the cluster:

  • Service: The service.serving.knative.dev resource manages the whole lifecycle of your workload automatically. It controls the creation of other objects to ensure your app has a route, configuration, and a new revision for each update of the service. Service can be defined to always route traffic to the latest revision or to a pinned revision.
  • Route: The route.serving.knative.dev resource maps a network endpoint to a one or more revisions. You can manage the traffic in several ways, including fractional traffic and named routes.
  • Configuration: The configuration.serving.knative.dev resource maintains the desired state for your deployment. It provides a clean separation between code and configuration, following the Twelve-Factor App methodology. Modifying a configuration will create a new revision.
  • Revision: The revision.serving.knative.dev resource is a point in time snapshot of the code and configuration for each modification made to the workload. Revisions are immutable objects and can be retained for as long as useful.

Diagram displaying the way the Serving resources coordinate with each other.

Getting Started

To get started with Serving, check out one of the hello world sample projects. These projects use the Service resource, which manages all the details for you.

With the Service resource, a deployed service will automatically have a matching route and configuration created. Each time the Service is updated, a new revision will be created.

For more information on the resources and their interactions, see the Resource Types Overview in the Knative Serving repo.

To serve workloads from a custom domain, see Use a custom domain for details on how to override the default example.com domain.

Known Issues

See the Knative Serving Issues for a full list of known issues.

  • No support for TLS - Currently the Knative Serving components do not support TLS connections for inbound HTTPS traffic. See #537 for more details.

Observability

Networking