作者|刘宇
前言:Knative 是一款根据 Kubernetes 的 Serverless 结构。其目标是拟定云原生、跨平台的 Serverless 编列规范。
Knative 介绍
Knative 经过整合容器构建(或许函数)、作业负载办理(动态扩缩)以及事情模型这三者完结其 Serverless 规范。
在 Knative 系统架构下,各人物的协作关系如下图所示。
- 开发者是指 Serverless 服务的开发人员能够直接运用原生 Kubernetes API 根据 Knative 布置 Serverless 服务。
- 贡献者首要是指社区的贡献者。
- Knative 能够被集成到支持的环境中,例如云厂商或许企业内部。现在,Knative 是根据Kubernetes来完结的,所以能够认为有 Kubernetes 的地方就能够布置 Knative。
- 用户指终端用户,其经过Istio网关拜访服务或许事情系统触发 Knative 中的 Serverless 服务。
- 作为一个通用的 Serverless 结构,Knative 由 3 个核心组件组成。
- Tekton:供给从源码到镜像的通用构建才能。Tekton 组件首要担任从代码仓库获取源码并编译成镜像,推送到镜像仓库。所有这些操作都是在 Kubernetes Pod 中进行的。
- Eventing:供给事情的接入、触发等一整套事情办理才能。Eventing 组件针对 Serverless 事情驱动形式做了一套完好的规划,包含外部事情源的接入、事情注册、订阅以及事情过滤等功能。事情模型能够有效地解耦生产者和顾客的依赖关系。生产者能够在顾客发动之前生成事情,顾客也能够在生产者发动之前监听事情。
在 Knative 系统架构下各人物的协作关系
- Serving:办理 Serverless 作业负载,能够和事情很好地结合,并且供给了根据恳求驱动的主动弹性才能,并且在没有服务需求处理的时分能够缩容到零。Serving 组件的职责是办理作业负载以对外供给服务。Serving 组件最重要的特性就是主动弹性的才能。现在,其弹性鸿沟无限制。Serving 还具有灰度发布才能。
Knative 布置
本文将会以在阿里云布置 Kantive 服务为例,具体说明怎么布置 Knative 相关服务。首要,登录到容器服务办理控制台,如图所示。
阿里云容器服务办理控制台
如没有集群,能够先挑选创立集群,如下图所示。
装备与创立集群
创立集群比较缓慢,耐性等候集群创立完结,成功之后如图所示。
集群创立成功示意图
进入集群之后,挑选左侧的“运用”,找到 “Knative” 并点击“一键布置”,如图所示。
创立 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 运用
关于作者:刘宇(江昱)国防科技大学电子信息专业在读博士,阿里云 Serverless 产品司理,阿里云 Serverless 云布道师,CIO 学院特聘讲师。