Kubeless 快速入门 | 玩转 Kubeless
本文将介绍 Kubeless 的安装以及如何使用 Kubeless CLI 部署和管理函数。
环境说明
操作系统:macOS
Kubernetes 版本:v1.15.5
Kubeless 版本:v1.0.7
安装 Kubeless
目前 Kubeless 同时支持安装在 Kubernetes 和 OpenShift (1.5+),其中 Kubernetes 环境支持 RBAC Kubernetes 集群和非 RBAC Kubernetes 集群。
Kubeless 安装比较简单,通过 kubectl create 命令即可快速安装:
创建 namespace:kubeless。
使用 YAML manifests 部署 Kubeless,它会创建 Kubeless 相关的 CRD 并启动一个 controller。
目前 Kubeless 最新的版本为 v1.0.7,在 RBAC Kubernetes 集群安装 Kubeless,命令及输出如下所示:
查看安装情况
Kubeless Controller Manager 是 Kubeless 的控制中枢。查看 Kubeless 相关的 Pod 和 Deployment:
Kubeless 基于 Kubernetes CRD 进行了扩展,查看相关的 CRD :
也可以通过 kubectl 访问这些 CRD,如下所示:
查看与 controller 相关的 docker 镜像,可以发现上面每个 CRD 都对应一个 docker 镜像:
安装 kubeless CLI
Kubeless 提供了命令行工具 kubeless,用于对 Kubeless 的函数进行部署以及管理。
安装 kubeless CLI,Linux 和 macOS 可以使用下面的命令:
Windows 则需要下载安装包、解压并将 kubeless 命令添加到系统 PATH 环境变量中。
使用 kubeless -h 可以查看 kubeless CLI 帮助文档,了解 kubeless 相关命令:
部署示例函数
创建一个 Python 文件 test.py,内容如下:
Kubeless 中的函数具有相同的格式,而与函数的语言或事件源无关。通常,每个函数:
接收一个对象 event 第一个参数。此参数包括有关事件源的所有信息(如:data、event-id、event-type、event-time、event-namespace 等)。特别是,键 'data' 应包含功能请求的主体。
接收 context 带有有关该函数的常规信息(如:function-name、timeout、runtime 等)为第二个对象。
返回用来响应调用者的字符串或对象。
部署函数:
让我们分析下上面的命令:
hello:这是函数的名称。
--runtime python2.7:这里指定了运行时。更多运行时可以通过 kubeless get-server-config 命令查看。
--from-file test.py:这个文件中包含了函数代码。
--handler test.hello:这里指定接收请求时使用的文件和函数。在这个示例中,我们使用 test.py 文件中的函数 hello。
提示:更多选项可以通过 kubeless function deploy --help 命令查看。
查看函数部署状态:
调用函数,通过 kubeless function call 调用函数:
或者可以使用 kubectl proxy 创建反向代理,然后通过 curl 访问函数:
修改代码,重新部署,然后调用:
修改代码后,重新部署,然后调用,可以发现代码已生效:
删除函数:
参考
https://kubeless.io/docs/quick-start/
版权声明: 本文为 InfoQ 作者【donghui2020】的原创文章。
原文链接:【http://xie.infoq.cn/article/b6ed719cf28e540931511f6e8】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论