Knative是一款基于Kubernetes的Serverless框架。其目标是制定云原生、跨平台的Serverless编排标准。Knative通过整合容器构建(或者函数)、工作负载管理(动态扩缩)以及事件模型这三者实现其Serverless标准。
在Knative体系架构下,各角色的协作关系如下图所示。
在Knative体系架构下各角色的协作关系
本节将会以在阿里云部署Kantive服务为例,详细说明如何部署Knative相关服务。
首先,登录到容器服务管理控制台,如图所示为阿里云容器服务管理控制台。
如没有集群,可以先选择创建集群,如图所示为配置与创建集群。
创建集群比较缓慢,耐心等待集群创建完成,成功之后如示意图所示。
进入集群之后,选择左侧的“应用”,找到“Knative”并点击“一键部署”,如图所示。
稍等片刻,Knative安装完成之后,可以看到核心组件已经处于“已部署”状态,如图所示。
至此,我们完成了Knative的部署。
首先需要创建一个EIP,并将其绑定到API Server服务上,如图所示为API Server绑定EIP。
完成之后,进行Serverless应用的测试。选择应用中的“Kantive应用”,并且在服务管理中选择“使用模板创建”,如图快速创建示例应用所示。
创建完成之后,可以看到控制台已经出现一个Serverless应用,如图所示为示例应用创建成功。
此时,我们可以点击应用名称查看该应用的详情,如图所示为查看示例应用详情。
为了便于测试,可以在本地设置Host:
101.200.87.158 helloworld-go.default.example.com
设置完成之后,在浏览器中打开系统分配的域名,可以看到已经输出预期的结果,如图所示:浏览器测试示例应用。
至此,我们完成了一个基于Knative的Serverless应用的部署和测试。
此时,我们还可以通过CloudShell进行集群的管理等。在集群列表页面,选择通过CloudShell进行管理,如图集群管理列表所示。
通过CloudShell管理已创建的集群,如图CloudShell窗口。
执行指令:
kubectl get knative
可以看到,刚部署的Knative应用,如图CloudShell查看Knative应用所示。