Kubeless 简介
Kubeless 是基于 Kubernetes 的原生无服务器框架。其允许用户部署少量的代码(函数),而无须担心底层架构。它被部署在 Kubernetes 集群之上,并充分利用 Kubernetes 的特性及资源类型,可以克隆 AWS Lambda、Azure Functions、Google Cloud Functions 上的内容。
Kubeless 主要特点可以总结为以下几个方面。
由于 Kubeless 的功能特性是建立在 Kubernetes 之上的,因此对于熟悉 Kubernetes 的人来说非常容易部署 Kubeless。其主要实现是将用户编写的函数在 Kubernetes 中转变为 CRD(Custom Resource Definition,自定义资源),并以容器的方式运行在集群中。
Kubeless 部署
在已有的 Kubernetes 集群上进行 Kubeless 服务的创建:
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
创建成功后如图所示
查看基本信息:
kubectl get pods -n kubeless
相关 Pod 信息如图所示
查看 Deployment 信息:
kubectl get deployment -n kubeless
其相关信息如图所示
查看 customresourcedefinition 信息:
kubectl get customresourcedefinition
其相关信息如图所示
下载命令行工具
下载 Kubeless 工具,并解压:
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
具体如图所示
体验测试
创建测试代码 helloworld.py :
def hello(event, context): print(event) return event['data']
部署项目:
./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
函数状态如图所示
触发函数:
./bundles/kubeless_linux-amd64/kubeless function call hello-world --data 'Hello world!'
触发完成之后,看到输出结果:
查看实例中输出的日志,如图所示
至此,我们在 Kubernetes 集群上成功地创建了 Kubeless 服务,并顺利地体验了 Kubeless 版的 Hello World 实现。
原文链接:http://click.aliyun.com/m/1000306931/
本文为阿里云原创内容,未经允许不得转载。