千家信息网

如何使用Kubeless Serverless Plugin部署与管理Kubeless 函数

发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,如何使用Kubeless Serverless Plugin部署与管理Kubeless 函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题
千家信息网最后更新 2024年11月16日如何使用Kubeless Serverless Plugin部署与管理Kubeless 函数

如何使用Kubeless Serverless Plugin部署与管理Kubeless 函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Kubeless 是一个 Kubernetes 原生的 Serverless 解决方案。

Serverless Framework 是一个命令行工具,支持将函数部署到不同平台(如:AWS Lambda、Azure Functions、Google CloudFunctions、腾讯云云函数SCF等等)并对它进行管理。

Kubeless Serverless Plugin 使得通过 Serverless Framework 部署函数到 Kubeless 成为可能。

下面将介绍使用 Kubeless Serverless Plugin 部署与管理 Kubeless 函数。

环境说明

操作系统:macOS

Kubernetes 版本:v1.15.5

Kubeless 版本:v1.0.7

安装 serverless

serverless 可以通过 npm 命令安装:

$ npm install serverless -g

示例体验

使用 git 克隆 serverless-kubeless 仓库,并查看示例函数。

serverless.yml 中有几个关键字段:service、provider、plugins、functions,其中 provider 下面还有 name 和 runtime。

从 package.json 文件内容中可以看出依赖中包括 serverless-kubeless。

$ git clone https://github.com/serverless/serverless-kubeless$ cd serverless-kubeless/examples/get-python$ cat serverless.ymlservice: helloprovider:  name: kubeless  runtime: python2.7plugins:  - serverless-kubelessfunctions:  hello:    description: 'Hello function'    handler: handler.hello$ cat package.json{  "name": "hello",  "version": "1.0.0",  "description": "Example function for serverless kubeless",  "dependencies": {    "serverless-kubeless": "^0.7.0"  },  "devDependencies": {},  "scripts": {    "test": "echo \"Error: no test specified\" && exit 1"  },  "author": "",  "license": "Apache-2.0"}

下载依赖,这里用到了淘宝源:

$ npm install --registry=https://registry.npm.taobao.org

部署函数:

$ serverless deployServerless: Packaging service...Serverless: Excluding development dependencies...Serverless: Deploying function hello...Serverless: Function hello successfully deployed

查看函数状态:

$ kubectl get functionNAME    AGEhello   2m1s$ kubectl get podNAME                     READY   STATUS    RESTARTS   AGEhello-68d57655b4-cfk6b   1/1     Running   0          2m16s

调用函数:

$ serverless invoke -f hello -lServerless: Calling function: hello...--------------------------------------------------------------------hello world


查看函数日志:

$ serverless logs -f hello10.1.0.1 - - [09/Oct/2020:09:23:17 +0000] "GET / HTTP/1.1" 200 11 "" "" 0/1053210.1.0.1 - - [09/Oct/2020:09:23:37 +0000] "GET /healthz HTTP/1.1" 200 2 "" "kube-probe/1.16+" 0/13810.1.0.1 - - [09/Oct/2020:09:24:07 +0000] "GET /healthz HTTP/1.1" 200 2 "" "kube-probe/1.16+" 0/182

获取函数信息:

$ serverless infoService Information "hello"Cluster IP:  10.107.27.134Type:  ClusterIPPorts:  Name:  http-function-port  Protocol:  TCP  Port:  8080  Target Port:  8080Function InfoDescription: Hello functionLabels:  created-by: kubeless  function: helloHandler:  handler.helloRuntime:  python2.7Dependencies:

修改函数后,重新部署:

$ serverless deploy function -f hello

这里遇到了问题,导致函数重新部署失败,详情参见:https://github.com/serverless/serverless-kubeless/issues/201

删除函数:

$ serverless removeServerless: Removing function: hello...

看完上述内容,你们掌握如何使用Kubeless Serverless Plugin部署与管理Kubeless 函数的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0