快速部署Serverless应用

本文以Hello World示例为您介绍如何通过Knative快速部署一个Serverless应用。

前提条件

步骤一:部署Knative服务

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Knative

  3. 单击服务管理页签,在服务管理页面顶部选择服务所属的命名空间。然后部署Knative服务。

    您可以通过控制台界面或YAML两种方式部署服务。

    控制台

    服务管理页面的右上角,单击创建服务,按照页面指引完成参数的配置。

    配置项

    说明

    服务名称

    自定义该服务的名称。

    镜像名称

    单击选择镜像,在弹出的对话框选择所需的镜像。您也可以填写私有registry,填写的格式为domainname/namespace/imagename:tag

    本例中为registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go

    镜像版本

    单击选择镜像版本。本例中为73fbdd56。

    访问协议

    支持HTTPgRPC两种访问协议。

    容器端口

    设置暴露的容器访问端口,端口号必须介于1~65535。

    高级设置

    单击高级设置,设置相关配置项。

    展开查看相关配置项

    • 仅内部访问:选择后,不支持通过公网访问该服务。

    • 请求最大并发数:容器允许的最大请求并发数。默认为0,表示不限制并发数。

    • 自定义域名:为目标服务配置自定义域名。

    • 最小缩容实例数:在无访问请求的情况下,最小缩容的运行实例数。设置为0时,表示没有访问请求时,实例缩为0。

    • 最大扩容实例数:允许扩容出来的最多实例个数。

    • 资源限制:可指定该应用所能使用的资源上限,包括CPU、内存和GPU三种资源,防止占用过多资源。其中,CPU资源的单位为Core(核);内存的单位为Bytes,也可以为MiB。

    • 生命周期:包含命令(Command)和参数(Args)。

      • 如果均不配置,则使用镜像默认的命令和参数。

      • 如果仅配置参数,则使用镜像默认的命令及新配置的参数。

      • 如果均配置,则会覆盖镜像默认的配置。

    • 环境变量:支持通过键值对的形式配置环境变量。

    • 数据卷:支持增加本地存储和云存储声明(PVC)。

      • 本地存储:支持主机目录(hostpath)、配置项(ConfigMap)、保密字典(Secret)和临时目录,将对应的挂载源挂载到容器路径中。更多信息,请参见Volumes

      • 云存储声明(PVC):支持云存储。

    YAML

    1. 服务管理页面的右上角,单击使用模板创建

    2. 将需要部署服务的YAML编写至模板,然后单击创建

      例如将如下YAML粘贴至模板,创建一个名为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"

    服务创建完成后,您可以在服务管理页签查看创建的服务,并对服务进行查看、编辑或删除操作。

步骤二:访问服务

  1. 服务管理页签,单击服务名称。

    您可以在Knative服务详情页的基本信息区域,查看访问网关及域名。

  2. 将访问网关地址与需要访问的域名进行Host绑定,在Hosts文件中添加绑定信息。

    绑定示例如下。

    121.xx.xxx.xx helloworld-go.default.example.com
  3. 通过域名直接对服务进行访问。访问服务

更多示例

关于Knative更多示例请参见Knative系列文章