简介: 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. 【ATCOER、D - ±1 Operation 2】前缀和+排序二分

    import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public cla ...

  2. Unity实现敌人生命条

    在敌人物体身上添加 Slider,将Background设置为黑色,FIllarea设置为绿色,调整滑块大小. 生命值减少代码设计如下: using System.Collections; using ...

  3. C#文件加密解密

    加密后内容 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.D ...

  4. C# OpenCv Haar、LBP 人脸检测

    using OpenCvSharp; namespace OPenCVDemo { class Program { static void Main(string[] args) { // Load ...

  5. Java获取客户端IP地址进行记录

    1.编写工具类IpUtils public class IpUtils { /** * 访问IP:0:0:0:0:0:0:0:1 * 访问IP:192.168.1.10 */ private stat ...

  6. 【已解决】ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)---mysql数据库本地服务器localhost连接失败

    出现错误mysql数据库本地服务器localhost连接失败: 1.输入命令 mysql -uroot -p  输入密码进入数据库发现错误 2.输入命令 mysqld --install 出现Serv ...

  7. 高抗干扰抗噪,段码LCD液晶低功耗驱动IC-VK2C23B,兼容市面上16C23

    VK2C23是一个点阵式存储映射的LCD驱动器,可支持最大224点(56SEGx4COM)或者最大416点(52SEGx8COM)的LCD屏. 单片机可通过I2C接口配置显示参数和读写显示数据,也可通 ...

  8. k-均值聚类算法 Primary

    目录 案例--区分好坏苹果(有Key) 案例--自动聚类(无Key) k-均值聚类算法(英文:k-means clustering) 定义: k-均值聚类算法的目的是:把n个点(可以是样本的一次观察或 ...

  9. Mybatis-Plus框架的BaseMapper的insert方法和自定义mapper里面的insert方法会用哪个

    在Mybatis-Plus框架中,当一个接口继承了BaseMapper接口,并且绑定了一个xml文件时,如果这个接口和xml文件中都定义了相同的方法,那么在调用该方法时,会优先调用xml文件中的方法, ...

  10. #构造#CF891B Gluttony

    题目 有一个长度为 \(n\) 的数列 \(a\),数字互不相同, 现在要打乱这个数列,设其为 \(b\), 使得 \(a\) 的任意真子序列与对应的 \(b\) 的任意真子序列的数字和不同 输出任意 ...