This is a cache of https://docs.openshift.com/container-platform/4.1/serverless/getting-started-knative-services.html. It is a snapshot of the page at 2024-09-20T21:10:13.434+0000.
Getting started with Knative <strong>service</strong>s | Serverless applications | OpenShift Container Platform 4.1
×

Knative services are Kubernetes services that a user creates to deploy a serverless application. Each Knative service is defined by a route and a configuration, contained in a .yaml file.

Creating a Knative service

To create a service, you must create the service.yaml file.

You can copy the sample below. This sample will create a sample golang application called helloworld-go and allows you to specify the image for that application.

apiVersion: serving.knative.dev/v1alpha1 (1)
kind: service
metadata:
  name: helloworld-go (2)
  namespace: default (3)
spec:
  template:
    spec:
      containers:
        - image: gcr.io/knative-samples/helloworld-go (4)
          env:
            - name: TARGET (5)
              value: "Go Sample v1"
1 Current version of Knative
2 The name of the application
3 The namespace the application will use
4 The URL to the image of the application
5 The environment variable printed out by the sample application

Deploying a serverless application

To deploy a serverless application, you must apply the service.yaml file.

Procedure
  1. Navigate to the directory where the service.yaml file is contained.

  2. Deploy the application by applying the service.yaml file.

    $ oc apply --filename service.yaml

Now that service has been created and the application has been deployed, Knative will create a new immutable revision for this version of the application.

Knative will also perform network programming to create a route, ingress, service, and load balancer for your application, and will automatically scale your pods up and down based on traffic, including inactive pods.