使用ASM管理Knative服务(2):使用Knative on ASM部署Serverless应用

本文涉及的产品
简介: 如何在阿里云服务网格ASM中开启Knative on ASM功能, 并结合ACK或者ASK部署管理Serverless应用服务。

本文主要为您介绍如何使用Knative on ASM创建Knative服务。

本系列文章包括以下部分:

使用ASM管理Knative服务(1):Knative on ASM概述

使用ASM管理Knative服务(2):使用Knative on ASM部署Serverless应用

使用ASM管理Knative服务(3):在Knative on ASM中使用自定义域名

使用ASM管理Knative服务(4):使用ASM网关实现HTTPS访问Knative服务

使用ASM管理Knative服务(5):在Knative on ASM中基于流量灰度发布服务

使用ASM管理Knative服务(6):基于流量请求数实现服务自动扩缩容

前提条件

  • 创建至少一个ASM实例,且版本≥v1.16。添加至少一个ACK集群或ASK集群到该实例中。详情请参见创建ASM实例添加集群到ASM实例
  • 部署Knative Serving组件:

    • 如果是ACK集群,关于部署Knative具体操作,请参见部署Knative
    • 如果是ASK集群,关于部署Knative具体操作,请参见开启Knative
  • 为集群添加入口网关。本实例使用ASM入口网关作为集群网关,详情请参见添加入口网关服务
ASM网关为Knative提供了Knative Revisions流量分发,支持gRPC服务、超时和重试、TLS证书和外部认证授权等功能。具体可以参见 https://help.aliyun.com/document_detail/473114.html

开启Knative on ASM功能

登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择生态集成 > Knative on ASM,在右侧的页面中点击启用按钮, 稍后更新完毕之后即可开启。
image.png

部署Knative服务

可以通过容器服务管理控制台YAML配置文件两种方式部署Knative服务,您可以任意选择一种适合您的方式。

方式一:通过容器服务管理控制台部署

  1. 登录容器服务管理控制台,在左侧导航栏中选择集群
  2. 集群列表页面中,单击目标集群名称,然后在左侧导航栏中,选择应用 > Knative
  3. 服务管理页签单击右上角的创建服务,配置相关信息,然后单击创建
参数 说明
命名空间 选择该服务所属的命名空间。
服务名称 自定义该服务的名称。
镜像名称 您可以单击选择镜像,在弹出的对话框中选择所需的镜像并单击确定。您还可以填写私有registry。填写的格式为domainname/namespace/imagename:tag。本例中为registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go。
镜像版本 您可以单击选择镜像版本。本例中为73fbdd56。
访问协议 支持HTTPgRPC两种访问协议。
容器端口 设置暴露的容器访问端口,端口号必须介于1~65535。
仅内部访问 选中仅内部访问后,不支持通过公网访问该服务。
请求最大并发数 容器允许的最大请求并发数。默认0,表示不限制并发数。
最小缩容实例数 在无访问请求的情况下,最小缩容的运行实例数。设置为0时,表示没有访问请求时,实例缩为0。
最大扩容实例数 允许扩容出来的最多实例个数。
资源限制 可指定该应用所能使用的资源上限,包括CPU、内存和GPU三种资源,防止占用过多资源。其中,CPU资源的单位为cores,即一个核;内存的单位为Bytes,可以为MiB。
生命周期 包含命令(Command)和参数(Args),配置说明如下:- 如果均不配置,则使用镜像默认的命令和参数。 - 如果仅配置参数,则使用镜像默认的命令及新配置的参数。- 如果均配置,则会覆盖镜像默认的配置。
环境变量 支持通过键值对的形式配置环境变量。
数据卷 支持增加本地存储和云存储声明(PVC)。- 本地存储:支持主机目录(hostpath)、配置项(configmap)、保密字典(secret)和临时目录,将对应的挂载源挂载到容器路径中。更多信息参见volumes。. - 云存储声明(PVC):支持云存储。

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

方式二:通过YAML配置文件部署

  1. 将以下内容保存为hello.yaml
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
  annotations:
    knative.k8s.alibabacloud/tls: "false" 
spec:
  template:
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/acs/helloworld-go:160e4dc8
          ports:
            - containerPort: 8080
          env:
            - name: TARGET
              value: "Knative"
  1. 使用kubectl连接到集群,执行以下命令创建Knative Service
kubectl apply -f hello.yaml
  1. 等待一段时间后,执行以下命令,查看Knative服务列表
kubectl get ksvc

预期输出:

NAME            URL                                        LATESTCREATED         LATESTREADY           READY   REASON
helloworld-go   http://helloworld-go.default.example.com   helloworld-go-00001   helloworld-go-00001   True

访问服务

Knative服务创建完成后,通过绑定Host域名与访问网关,可以直接访问服务地址。操作步骤如下:

  1. 服务管理页签,单击服务名称或右侧操作栏下的详情按钮进入Knative服务详情页面。您可以在Knative服务详情页的基本信息区域,查看访问网关及域名。

image.png

  1. 将访问网关地址与需要访问的域名进行Host绑定,在Hosts文件中添加绑定信息。绑定样例如下(请将xx.xx.xxx.xx替换为您的网关ip):
xx.xx.xxx.xx helloworld-go.default.example.com
  1. 完成Host绑定后,可通过域名直接对服务进行访问。
curl http://helloworld-go.default.example.com
Hello Knative!

image.png

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
1月前
|
人工智能 Serverless 测试技术
nacos常见问题之Serverless 应用引擎2.0不支持 MSE nacos如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
23 0
|
1月前
|
监控 Serverless 数据库
Serverless 应用引擎常见问题之biphon-education-配置了SLS后一直重启如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
28 5
|
1月前
|
运维 Serverless 调度
Serverless 应用引擎常见问题之事件中心看不着如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
33 4
|
1月前
|
JSON Serverless API
Serverless 应用引擎常见问题之query参数无法取到上一步传输过来的jjson参数如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
158 3
|
1月前
|
监控 Serverless 对象存储
Serverless 应用引擎常见问题之用ECI部署Traefik时设置如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
237 2
|
30天前
|
监控 Serverless
函数计算(FC)作为一种无服务器的计算服务,在使用过程中可能会遇到各种问题
函数计算(FC)作为一种无服务器的计算服务,在使用过程中可能会遇到各种问题
21 4
|
1月前
|
监控 关系型数据库 Serverless
Serverless 应用引擎常见问题之工作流这执行输出通过jsonpath过滤如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
391 3
|
1天前
|
测试技术 Linux Docker
【好玩的经典游戏】Docker部署FC-web游戏模拟器
【好玩的经典游戏】Docker部署FC-web游戏模拟器
14 1
|
9天前
|
Cloud Native Serverless API
Serverless 成本再优化:Knative 支持抢占式实例
Knative 是一款云原生、跨平台的开源 Serverless 应用编排框架,而抢占式实例是公有云中性价比较高的资源。Knative 与抢占式实例的结合可以进一步降低用户资源使用成本。本文介绍如何在 Knative 中使用抢占式实例。
47008 2
|
9天前
|
人工智能 Serverless 数据处理
利用阿里云函数计算实现 Serverless 架构的应用
阿里云函数计算是事件驱动的Serverless服务,免服务器管理,自动扩展资源。它降低了基础设施成本,提高了开发效率,支持Web应用、数据处理、AI和定时任务等多种场景。通过实例展示了如何用Python实现图片压缩应用,通过OSS触发函数自动执行。阿里云函数计算在云计算时代助力企业实现快速迭代和高效运营。
46 0

相关产品

  • 函数计算