简介: Kubeless 是基于 Kubernetes 的原生无服务器框架。其允许用户部署少量的代码(函数),而无须担心底层架构。

快速搭建 Kubeless 平台

Kubeless 简介

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

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 服务的创建:

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 工具,并解压:

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']

部署项目:

./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 实现。

原文链接

本文为阿里云原创内容,未经允许不得转载。

Serverless 工程实践 | 快速搭建 Kubeless 平台的更多相关文章

  1. logstash+elasticsearch+kibana快速搭建日志平台

    使用logstash+elasticsearch+kibana快速搭建日志平台   日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: 根据关键字查询日 ...

  2. EpiiAdmin 开源的php交互性管理后台框架, 让复杂的交互变得更简单!Phper快速搭建交互性平台的开发框架,基于Thinkphp5.1+Adminlte3.0+Require.js。

    EpiiAdmin EpiiAdmin php开源交互性管理后台框架,基于Thinkphp5.1+Adminlte3.0+Require.js, 让复杂的交互变得更简单!Phper快速搭建交互性平台的 ...

  3. Serverless 工程实践|自建 Apache OpenWhisk 平台

    作者 | 刘宇(江昱) 前言:OpenWhisk 是一个开源.无服务器的云平台,可以在运行时容器中通过执行扩展的代码响应各种事件,而无须用户关心相关的基础设施架构. OpenWhisk 简介 Open ...

  4. 使用logstash+elasticsearch+kibana快速搭建日志平台

    日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: * 根据关键字查询日志详情 * 监控系统的运行状况 * 统计分析,比如接口的调用次数.执行时间.成功 ...

  5. 【转载】使用logstash+elasticsearch+kibana快速搭建日志平台

    原文链接:http://www.cnblogs.com/buzzlight/p/logstash_elasticsearch_kibana_log.html 日志的分析和监控在系统开发中占非常重要的地 ...

  6. ELK快速搭建日志平台

    1.  抛砖引入 <Elasticsearch> <Logstash> <Filebeat> <Filebeat模块与配置> <Kibana> ...

  7. Serverless 工程实践 | Serverless 应用优化与调试秘诀

    作者|刘宇   前言:本文将以阿里云函数计算为例,提供了在线调试.本地调试等多种应用优化与调试方案. Serverless 应用调试秘诀 在应用开发过程中,或者应用开发完成,所执行结果不符合预期时,我 ...

  8. Serverless 工程实践 | 零基础上手 Knative 应用

    作者|刘宇 前言:Knative 是一款基于 Kubernetes 的 Serverless 框架.其目标是制定云原生.跨平台的 Serverless 编排标准. Knative 介绍 Knative ...

  9. 用yum快速搭建LAMP平台

    实验环境: [root@nmserver-7 html]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@nms ...

  10. CentOS7用yum快速搭建LAMP平台

    实验环境: [root@nmserver-7 html]# cat /etc/redhat-release CentOS release 7.3.1611 (AltArch) [root@nmserv ...

随机推荐

  1. 关于Ubuntu的磁盘空间不足其中的一种问题

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文发布于 2014-07-06 01:12:48 ...

  2. 【2310. 个位数字为 K 的整数之和】背包

    import java.util.*; class Solution { public static void main(String[] args) { Solution solution = ne ...

  3. Windows下写脚本无法运行在linux上?怎麽办?

    Windows下写脚本无法运行在linux上?怎麽办? $'\r': command not found的解决方法 在Linux系统中,运行Shell脚本,出现了如下错误: one-more.sh: ...

  4. Python实现端口扫描

    实验环境 攻击主机IP:172.18.53.145 目标主机IP:172.18.53.28 脚本编写 思路:使用TCP协议遍历连接目标的所有端口,如果连接成功说明该端口开放,为了提升效率,使用多线程执 ...

  5. 冰河开始对Dubbo下手了!

    写在前面 对冰河有一定了解的读者都知道,冰河经历了一个高并发电商系统用户从零到上亿的整个研发过程,后期也由此衍生出电商系统(商城+秒杀)和基于海量数据的实时精准商品推荐平台.部分核心知识已总结到我出版 ...

  6. KingbaseES V8R6运维案例之---数据库resetwal后启动失败

    KingbaseES V8R6运维案例之---数据库resetwal后启动失败 案例说明: KingbaseES V8R6集群触发failover切换后,原主库自动recovery失败,现在需要将原主 ...

  7. archlinux virtualbox 启用usb支持

    参照 https://linux.cn/article-15287-1.html 1.安装virtualbox扩展包 (1)从archlinuxcn社区库安装 sudo pacman -S virtu ...

  8. rsync 运维利器,同步工具

    NAME rsync - faster, flexible replacement for rcp SYNOPSIS rsync [OPTION]... SRC [SRC]... DEST rsync ...

  9. 8 JavaScript函数

    8 JavaScript函数 在JS中声明函数和python差不多. 也要有一个关键字顶在前面. python是def, 到了JS里换成了function, 只不过在JS中没有像python那么死板, ...

  10. OpenHarmony—内核对象事件之源码详解

    近年来,国内开源实现跨越式发展,并成为企业提升创新能力.生产力.协作和透明度的关键.作为 OpenAtom OpenHarmony(以下简称"OpenHarmony")开源项目共建 ...