当前位置: 首页 > 后端技术 > Java

无服务器工程实践-快速搭建Kubeless平台

时间:2023-04-01 15:41:33 Java

介绍:Kubeless是一个基于Kubernetes的原生serverless框架。它允许用户部署少量代码(函数)而无需担心底层架构。快速搭建Kubeless平台Kubeless简介Kubeless是一个基于Kubernetes的原生无服务器框架。它允许用户部署少量代码(函数)而无需担心底层架构。它部署在Kubernetes集群上,充分利用Kubernetes的特性和资源类型,可以克隆AWSLambda、AzureFunctions和GoogleCloudFunctions上的内容。Kubeless的主要特点可以概括为以下几个方面。支持Python、Node.js、Ruby、PHP、Go、.NET、Ballerina语言编写和自定义运行时。KubelessCLI与AWSLambdaCLI兼容。事件触发器使用Kafka消息系统和HTTP触发器。Prometheus默认监控函数调用和延迟。支持无服务器框架插件。由于Kubeless的功能特性是建立在Kubernetes之上的,所以熟悉Kubernetes的人很容易部署Kubeless。它的主要实现是将用户编写的函数转换成Kubernetes中的CRD(CustomResourceDefinition,自定义资源),作为容器运行在集群中。Kubeless部署在已有的Kubernetes集群上,创建Kubeless服务:exportRELEASE=$(curl-shttps://api.github.com/repos/kubeless/kubeless/releases/latest|greptag_name|cut-d'"'-f4)kubectlcreatenskubelesskubectlcreate-fhttps://github.com/kubeless/kubeless/releases/download/$RELEASE/kubeless-$RELEASE.yaml创建成功后,如图安装配置Kubeless查看Basicinformation:kubectlgetpods-nkubeless-relatedPod信息如图information查看customresourcedefinition信息:kubectlgetcustomresourcedefinitionits相关信息查看customresourcedefinition信息如图下载命令行工具下载kubeless工具并解压:exportOS=$(uname-s|tr'[:upper:]''[:lower:]')curl-OLhttps://github.com/kubeless/kubeless/releases/download/$RELEASE/kubeless_$OS-amd64.zipunzipkubeless_$OS-amd64.zip解压后勾选:./bundles/kubeless_linux-amd64/kubeless如图使用Kubeless命令行工具体验测试创建测试代码helloworld.py:defhello(event,context):print(event)returnevent['data']Deployproject:。/捆绑es/kubeless_linux-amd64/kubelessfunctiondeployhello-world--runtimepython3.6--from-filehelloworld.py--handlerhelloworld.hello部署成功后查看项目信息:kubectlgetfunctions函数列表如图图查看函数列表中的实例函数:./bundles/kubeless_linux-amd64/kubelessfunctionls函数状态如图触发函数:./bundles/kubeless_linux-amd64/kubelessfunctioncallhello-world--data'Hello世界!'触发完成后,看输出:查看实例中的日志输出,如图,查看实例中的日志至此,我们就成功在Kubernetes集群上创建了Kubeless服务,成功体验了Kubeless版本HelloWorld实现原文链接本文为阿里云原创内容,未经允许不得转载。