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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
函数计算FC,每月免费额度15元,12个月
简介: 如何在阿里云服务网格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

相关文章
|
6天前
|
弹性计算 Kubernetes 安全
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
46 8
|
2天前
|
消息中间件 关系型数据库 Serverless
【阿里云】一键部署创建函数计算服务以处理多媒体文件
通过阿里云的一键部署功能,轻松创建函数计算服务以处理多媒体文件。首先选择地域并配置资源栈名称及其他必要参数,如登录凭证、实例类型及数据库配置。过程中可能需开通相关服务如消息服务MNS,并确保账户有足够的余额。完成配置后,系统自动创建资源栈。当状态显示“创建成功”即部署完毕。最后,通过提供的URL及凭据访问应用,上传PPTX文件进行处理,并下载处理后的结果。
28 4
|
5天前
|
关系型数据库 MySQL Serverless
在部署云数据库PolarDB MySQL版 Serverless集群的过程中问题点
在部署PolarDB MySQL Serverless过程中,常见问题包括配置误解、网络配置错误、资源未及时释放及压测不熟练。建议深入理解配置项,确保合理设置伸缩策略;明确业务需求,使PolarDB与现有服务同处一地域与VPC;利用提醒功能管理资源生命周期;按官方指南执行压测。新用户面临的学习曲线、资源管理自动化不足及成本控制难题,可通过增强文档友好性、引入智能成本管理与用户界面优化来改善。
25 1
|
5天前
|
弹性计算 运维 关系型数据库
云上Serverless高可用架构一键部署体验与测评
在数字化转型背景下,Serverless架构因其实现业务敏捷、降低成本及提升服务可靠性而备受青睐。本文以阿里云Serverless应用引擎(SAE)为核心,展示了一种高可用、低成本且易于扩展的解决方案。通过单地域双可用区部署,构建了具备自动伸缩与故障恢复能力的架构。借助阿里云的一键部署功能,大幅简化了搭建流程,实现了快速部署,并通过性能与成本分析验证了其优势。对比传统ECS,SAE在资源利用与运维效率上表现更佳,特别适合平均负载较低的应用场景。
|
14天前
|
人工智能 Serverless API
AI 创业及变现新思路:零门槛 AI 绘图,定制 ComfyUI Serverless API 应用
为了帮助用户高效率、低成本应对企业级复杂场景,本文介绍 ComfyUI API Serverless 版解决方案,通过使用该方案,用户可以充分利用 ComfyUI +Serverless 技术优势快速开发上线 AI 绘画应用,期待为广大开发者 AI 绘画创业及变现提供思路。
|
12天前
|
自然语言处理 Serverless Docker
量化交易大揭秘:如何将TA-Lib神兵利器部署于云端函数计算,让策略飞升!
【8月更文挑战第8天】在量化交易中,TA-Lib作为技术分析库备受青睐,支持多语言包括Python。本教程指导如何将其移植至函数计算平台,实现云端交易策略。首先安装Python与TA-Lib;接着选择云服务商并创建实例。确认TA-Lib与平台Python版本兼容,必要时构建自定义运行时。使用`pip`安装TA-Lib并打包依赖。编写函数计算代码示例,如计算移动平均线。部署代码与依赖至平台,定制Dockerfile以支持自定义运行时。最后,通过平台测试功能验证功能正确性。完成移植后,即可享受Serverless架构的自动扩展与成本效益优势。
27 4
|
21天前
|
弹性计算 Dubbo Serverless
Serverless 应用引擎操作报错合集之遇到400错误,该如何处理
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
19天前
|
机器学习/深度学习 机器人 Serverless
FaaS 的应用场景
FaaS 的应用场景
|
21天前
|
运维 Serverless Docker
Serverless 应用引擎使用问题之如何设置初始值和自动扩容策略
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
21天前
|
监控 Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之删除通配符域名时遇到了报错,该如何处理
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。

热门文章

最新文章

相关产品

  • 函数计算