Knative 冷启动(二)|学习笔记

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 快速学习 Knative 冷启动(二)

开发者学堂课程【如何通过 Knative 轻松实现应用 Serverless 化交付 Knative 冷启动(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/291/detail/3433


Knative 冷启动(二)


五、实例演示

下面打开相应的终端控制台,它就是一个很简单的 hello coffee。左侧使用的是 SK

connective

[root@iZbp1djyqnxhjfv9h9s0edZ serverless]# Ls

ksvc-coffee.yaml ksvc-java11.yaml

[root@iZbp1djyqnxhjfv9h9s@edZ serverless]# cat ksvc-coffee.yaml

apiVersion: serving.knative.dev/v1

kind:Service

metadata;

name:coffee

spec:

template:

metadata:

annotations:

autoscaling,knative.dev/target:"10"

spec;

containers;

image:registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

env:

name:TARGET

value;"coffee"

[root@iZbp1djyqnxhjfv9h9s0edZserverless]#

然后右侧使用的是社区的 connective

[rooteiZZzegdceffr1urv90tpu2Z demo]#ls coffee.yaml

[rooteiZ2zegdceffr1urv90tpu2Z demo]# cat coffee.yaml apiVersion:serving.knative.dev/v1 kind: Service metadata;

name: coffee spec:

template: metadata:

annotations:

autoscaling.knative.dev/target: "10' labels:

eci: "true" spec:

containers:

image:registry.cn-hangzhoualiyuncs.com/knative-sample/helloworld-go:160e4d

c8

env:

name; TARGET

value: "coffee"

[rooteiZZzegdceffrlurv90tpuZZ demo]#

二者的打印信息都是一样的。

最直观的是在 SK connective 的平台上,内容是不需要管控端相应的组件的,没有任何 pod。

而社区的 connective 是在相应的实名运营空间下,是需要相当提供这些管控组件的,这也是我们上面提到的在 SK connective 中对来自设备组件做了一个全托管免运维的优化。

接下来部署相应的服务。

社区的 connective 部署相应的服务

[root@iZ2zegdceffr1urv90tpu2Z demo]# kubectl apply-f coffeeyaml service.serving.knative.dev/coffee created

[root@iZ2zegdceffrlurv90tpu2Z demo]# kubectl get pod

coffee-ktvk6-deployment-67c5966b7c-59xhs  0/2

Pending 6s

[root@iZZzegdceffr1urv90tpu2Z demo]# watch -n 1 "kubectl get pod

可以看到已经创建完成。

观察一下当前一个 pod 的情况,同时在 SK 平台当中创建相同的 Coffee,也可以观察一下当前 pod 的一个启动情况。

[root@iZbp1djyqnxhjfv9h9s0edZ serverless]# kubectl -n knative-serving get pod No resources found.

[root@iZbp1djyqnxhjfv9h9s0edZ serverless]# kubectl apply -f ksvc-coffeeyaml service.serving.knative.dev/coffee created

[root@iZbp1djyqnxhjfv9h9s0edZ serverless]# watch -n 1 "kubectl get pod"

SK connective 在创建中,然后在社区的 connective 已经创建完成了。

接下来要观察一个现象,就是在没有请求的过程中,然后社区的 connective 会缩容到0,然后在 SK 中提供的 connective 是缩容到的一个保留实例。正常一个周期的缩容是90秒,社区的 connective,已经缩容到0。

SK 的 connective,在这个过程中重新访问请求,再打开一个窗口。

Last login: Tue Aug 11 19:50:58 on ttys004 richard@B-N3TEMD6P-1650 ~%cat ssh120.55.51.3047.94.141.240

8.211.36.198

richard@B-N3TEMD6P-1650~%sshroot@47.94.141240 root@47.94.141.240's password:

Last login: Tue Aug 11 19:51:54 2020 from 42.120.72.81

Welcame to Alibaba Cloud Elastic Campute Service!

[root@iZ2zegdceffr1urv90tpu2Z ~]#

创建保留实例,一旦ready,就会把正常的实例下线掉。在没有请求的时候, connective 已经缩容到0。

再打开社区的 connective。

Last login: Tue Aug 11 20:17:22 on ttys005

richard@B-N3TEMD6P-1650~%ssh

root@120.55.51.30 raot@120.55.51.30's password:

Last login: Tue Aug 11 19:51:05 2020 from 42120.72.81

Welcome to Alibaba Cloud Elastic Compute Service !

[root@iZbp1djyqnxhjfv9h9s0edZ ~]#

此时可以很明显对比出来,社区的 connective 一旦接受请求就会启动pod,大概30秒。在 SK 的 connective 几乎是实时响应。并且在响应过程中一旦接受请求,就会扩容一个正常实例。

一旦正常实例 ready 后,就会平滑的把相应的保留实力下线掉。通过这个对比可以看到,如何在 SK 的 connective 通过保留实例解决冷启动问题,对于服务敏感形的,可以保证实时响应。


六、总结

Knative 冷启动问题包括:当前社区 Knative 从口到1冷启动的问题以及保留实例平衡成本和冷启动。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
6月前
|
监控 Serverless 对象存储
Serverless 应用引擎常见问题之用ECI部署Traefik时设置如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
286 2
|
5月前
|
存储 NoSQL 机器人
Knative 实战:基于 Knative Serverless 技术实现天气服务-下篇
Knative 实战:基于 Knative Serverless 技术实现天气服务-下篇
|
6月前
|
人工智能 前端开发 Java
Serverless应用引擎问题之SAE内存接近占满如何解决
Serverless部署是指将应用程序部署到无服务器架构中,该架构允许开发者专注于代码而无需关心底层服务器的运行和维护;针对Serverless部署过程中可能遇到的挑战,本合集提供全面的指南和最佳实践,帮助开发者顺利实现应用的无服务器化部署。
213 1
|
运维 Serverless 调度
Knative 冷启动(一)|学习笔记
快速学习 Knative 冷启动(一)
234 0
Knative 冷启动(一)|学习笔记
|
运维 Serverless 测试技术
Knative 冷启动|学习笔记
快速学习Knative 冷启动
Knative 冷启动|学习笔记
|
运维 测试技术 Serverless
|
测试技术 Serverless vr&ar
Knative 灰度发布和自动弹性(一)|学习笔记
快速学习 Knative 灰度发布和自动弹性(一)
131 0
Knative 灰度发布和自动弹性(一)|学习笔记
|
测试技术 Serverless vr&ar
Knative 灰度发布和自动弹性|学习笔记(二)
快速学习Knative 灰度发布和自动弹性
Knative 灰度发布和自动弹性|学习笔记(二)
|
测试技术 Serverless vr&ar
Knative 灰度发布和自动弹性|学习笔记(一)
快速学习 Knative 灰度发布和自动弹性
Knative 灰度发布和自动弹性|学习笔记(一)
|
Kubernetes 负载均衡 Cloud Native
Knative 极致 Serverless 体验(一)|学习笔记
快速学习 Knative 极致 Serverless 体验(一)
Knative 极致 Serverless 体验(一)|学习笔记
下一篇
无影云桌面