Serverless is currently in [alpha](https://about.gitlab.com/handbook/product/#alpha).
Run serverless workloads on Kubernetes using [Knative](https://cloud.google.com/knative/).
Run serverless workloads on Kubernetes using [Knative](https://cloud.google.com/knative/).
## Overview
## Overview
Knative extends Kubernetes to provide a set of middleware components that are useful to build modern, source-centric, container-based applications. Knative brings some significant benefits out of the box through its main components:
Knative extends Kubernetes to provide a set of middleware components that are useful to build modern, source-centric, container-based applications. Knative brings some significant benefits out of the box through its main components:
-[Eventing:](https://github.com/knative/eventing) Management and delivery of events
-[Eventing](https://github.com/knative/eventing): Management and delivery of events.
-[Serving:](https://github.com/knative/serving) Request-driven compute that can scale to zero
-[Serving](https://github.com/knative/serving): Request-driven compute that can scale to zero.
For more information on Knative, visit the [Knative docs repo](https://github.com/knative/docs).
For more information on Knative, visit the [Knative docs repo](https://github.com/knative/docs).
With GitLab serverless, you can deploy both functions-as-a-service (FaaS) and serverless applications.
## Requirements
## Requirements
To run Knative on Gitlab, you will need:
To run Knative on Gitlab, you will need:
1.**Kubernetes:** An RBAC-enabled Kubernetes cluster is required to deploy Knative.
1.**Kubernetes Cluster:** An RBAC-enabled Kubernetes cluster is required to deploy Knative.
The simplest way to get started is to add a cluster using [GitLab's GKE integration](https://docs.gitlab.com/ee/user/project/clusters/#adding-and-creating-a-new-gke-cluster-via-gitlab).
The simplest way to get started is to add a cluster using [GitLab's GKE integration](../index.md#adding-and-creating-a-new-gke-cluster-via-gitlab).
GitLab recommends
1.**Helm Tiller:** Helm is a package manager for Kubernetes and is required to install
1.**Helm Tiller:** Helm is a package manager for Kubernetes and is required to install
Knative.
all the other applications.
1.**Domain Name:** Knative will provide its own load balancer using Istio. It will provide an
1.**Domain Name:** Knative will provide its own load balancer using Istio. It will provide an
external IP address for all the applications served by Knative. You will be prompted to enter a
external IP address for all the applications served by Knative. You will be prompted to enter a
wildcard domain where your applications will be served. Configure your DNS server to use the
wildcard domain where your applications will be served. Configure your DNS server to use the