当前位置:首页 >百科 >Serverless 工程实践|快速搭建 Kubeless 平台 而无须担心底层架构

Serverless 工程实践|快速搭建 Kubeless 平台 而无须担心底层架构

2024-06-29 05:59:44 [百科] 来源:避面尹邢网

Serverless 工程实践|快速搭建 Kubeless 平台

作者:佚名 网络 Kubeless 是工程基于 Kubernetes 的原生无服务器框架。其允许用户部署少量的实践代码(函数),而无须担心底层架构。快速它被部署在 Kubernetes 集群之上,搭建并充分利用 Kubernetes 的平台特性及资源类型,可以克隆 AWS Lambda、工程Azure Functions、实践Google Cloud Functions 上的快速内容。

快速搭建 Kubeless 平台

Kubeless 简介

Serverless 工程实践|快速搭建 Kubeless 平台 而无须担心底层架构

Kubeless 是搭建基于 Kubernetes 的原生无服务器框架。其允许用户部署少量的平台代码(函数),而无须担心底层架构。工程它被部署在 Kubernetes 集群之上,实践并充分利用 Kubernetes 的快速特性及资源类型,可以克隆 AWS Lambda、搭建Azure Functions、平台Google Cloud Functions 上的内容。

Serverless 工程实践|快速搭建 Kubeless 平台 而无须担心底层架构

Kubeless 主要特点可以总结为以下几个方面。

Serverless 工程实践|快速搭建 Kubeless 平台 而无须担心底层架构

支持 Python、Node.js、Ruby、PHP、Go、.NET、Ballerina 语言编写和自定义运行时。
Kubeless CLI 符合 AWS Lambda CLI。
事件触发器使用 Kafka 消息系统和 HTTP 触发器。
Prometheus 默认监视函数的调用和延时。
支持 Serverless 框架插件。

由于 Kubeless 的功能特性是建立在 Kubernetes 之上的,因此对于熟悉 Kubernetes 的人来说非常容易部署 Kubeless。其主要实现是将用户编写的函数在 Kubernetes 中转变为 CRD(Custom Resource Definition,自定义资源),并以容器的方式运行在集群中。

Kubeless 部署

在已有的 Kubernetes 集群上进行 Kubeless 服务的创建:

  1. export RELEASE=$(curl -s https://api.github.com/repos/kubeless/kubeless/releases/   latest | grep tag_name | cut -d '"' -f 4)kubectl create ns kubelesskubectl create -f https://github.com/kubeless/kubeless/releases/download/$RELEASE/   kubeless-$RELEASE.yaml 

创建成功后如图所示

安装和配置 Kubeless

查看基本信息:

kubectl get pods -n kubeless

相关 Pod 信息如图所示

查看 Kubeless 相关 Pod

查看 Deployment 信息:

kubectl get deployment -n kubeless

其相关信息如图所示

查看 Kubeless Deployment 相关信息

查看 customresourcedefinition 信息:

kubectl get customresourcedefinition

其相关信息如图所示

查看 customresourcedefinition 信息

下载命令行工具

下载 Kubeless 工具,并解压:

  1. export OS=$(uname -s| tr '[:upper:]' '[:lower:]')curl -OL https://github.com/kubeless/kubeless/releases/download/$RELEASE/kubeless_   $OS-amd64.zipunzip kubeless_$OS-amd64.zip 

解压之后查看:

./bundles/kubeless_linux-amd64/kubeless

具体如图所示

使用 Kubeless 命令行工具

体验测试

创建测试代码 helloworld.py :

def hello(event, context): print(event) return event['data']

部署项目:

  1. ./bundles/kubeless_linux-amd64/kubeless function deploy hello-world --runtime   python3.6 --from-file helloworld.py --handler helloworld.hello 

部署成功之后,查看项目信息:

kubectl get functions

函数列表如图所示

查看函数列表

查看实例函数:

./bundles/kubeless_linux-amd64/kubeless function ls

函数状态如图所示

触发函数:

  1. ./bundles/kubeless_linux-amd64/kubeless function call hello-world --data 'Hello   world!' 

触发完成之后,看到输出结果:

查看实例中输出的日志,如图所示

在实例中查看日志

至此,我们在 Kubernetes 集群上成功地创建了 Kubeless 服务,并顺利地体验了 Kubeless 版的 Hello World 实现。

责任编辑:梁菲 来源: 阿里云云栖号 ServerlessKubeless 阿里云

(责任编辑:时尚)

    推荐文章
    热点阅读