All Products
Search
Document Center

Container Service for Kubernetes:Use Knative to deploy serverless applications

Last Updated:Dec 05, 2023

Services in Knative are equivalent to applications. This topic describes how to create a Knative Service.

Prerequisites

Step 1: Deploy a Knative Service

  1. Log on to the ACK console. In the left-side navigation pane, click Clusters.

  2. On the Clusters page, click the name of the cluster that you want to manage and choose Applications > Knative in the left-side navigation pane.

  3. Click the Services tab. Select the namespace to which the Service belongs in the top navigation bar on the Services tab. Then, deploy a Knative Service.

    You can deploy a Knative Service by using the wizard or the YAML editor.

    Method 1: Use the wizard

    1. On the Services tab, click Create Service.

      Parameter

      Description

      Service Name

      Enter a name for the Service.

      Image Name

      To select an image, click Select Image. In the Select Image dialog box, select an image and click OK. You can also enter the address of a private image registry. The address must be in the domainname/namespace/imagename:tag format.

      In this example, registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go is used.

      Image Version

      To select an image version, click Select Image Version. In this example, the image version is 73fbdd56.

      Access Protocol

      HTTP and gRPC are supported.

      Container Port

      The container port that you want to expose. The port number must be in the range of 1 to 65535.

      Advanced

      Click Advanced to configure the advanced settings.

      View advanced settings

      • Internal Access Only: If you select Internal Access Only, the Knative Service cannot be accessed over the Internet.

      • Maximum Concurrent Requests: the maximum number of concurrent requests allowed by the container. The default value is 0. This indicates that the number of concurrent requests is unlimited.

      • Minimum Pods: the minimum number of running pods that must be guaranteed when no request is received. If you set this parameter to 0, the number of running pods is reduced to zero when no request is received.

      • Maximum Pods: the maximum number of pods that are allowed.

      • Resource Limit: the upper limit of resources that can be used by the application, including CPU, memory, and GPU resources. This prevents the application from occupying excessive amounts of resources. CPU usage is measured in cores. Memory usage is measured in bytes or mebibytes.

      • Lifecycle: Specify Command and Parameter.

        • If Command and Parameter are not set, the default values of Command and Parameter in the image configurations are used.

        • If you set only Parameter, the default value of Command in the image configurations and the specified value of Parameter are used.

        • If you set both Command and Parameter, the default values of Command and Parameter in the image configurations are overwritten by the specified values.

      • Environment Variables: environment variables in the format of key-value pairs.

      • Volume: Add local storage and persistent volume claims (PVCs).

        • Add Local Storage: You can select HostPath, ConfigMap, Secret, or EmptyDir. The specified volume is mounted to a path in the container. For more information, see Volumes.

        • Add PVC: Select Cloud Storage.

    2. Click Create.

      After the Service is created, it is displayed on the Services tab.

    Method 2: Use the YAML editor

    1. In the upper-right part of the Services tab, click Create from YAML.

    2. Enter the YAML content of the Service into the YAML editor and click Create.

      For example, copy the following YAML content to the editor to create a Service named helloworld-go.

      apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: helloworld-go
      spec:
        template:
          spec:
            containers:
            - image: registry-vpc.cn-beijing.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
              env:
              - name: TARGET
                value: "Knative"

    After the Service is created, you can view, modify, or delete the Service on the Services tab.

Step 2: Access the Knative Service

After the Knative Service is deployed, you can point its domain name to the IP address of a gateway to associate the Service with the gateway. This allows you to access the Knative Service by using its domain name. To do this, perform the following operations:

  1. On the Services tab, click the name of the Service.

    In the Basic Information section, you can view information about the gateway and domain name.新服务

  2. Add the following information to the hosts file to point the domain name of the Service to the IP address of the gateway.

    Example:

    121.xx.xxx.xx helloworld-go.default.example.com
  3. After you modify the hosts file, you can use the domain name to access the Knative Service.访问服务