zoukankan      html  css  js  c++  java
  • Serverless 工程实践 | 快速搭建 Kubeless 平台

    简介: 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
    

    创建成功后如图所示

    1.png

    安装和配置 Kubeless

    查看基本信息:

    kubectl get pods -n kubeless
    

    相关 Pod 信息如图所示

    2.png

    查看 Kubeless 相关 Pod

    查看 Deployment 信息:

    kubectl get deployment -n kubeless
    

    其相关信息如图所示

    3.png

    查看 Kubeless Deployment 相关信息

    查看 customresourcedefinition 信息:

    kubectl get customresourcedefinition
    

    其相关信息如图所示

    4.png

    查看 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
    

    具体如图所示

    5.png

    使用 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
    

    函数列表如图所示

    6.png

    查看函数列表

    查看实例函数:

    ./bundles/kubeless_linux-amd64/kubeless function ls

    函数状态如图所示

    7.png

    触发函数:
    ./bundles/kubeless_linux-amd64/kubeless function call hello-world --data 'Hello   world!'

    触发完成之后,看到输出结果:

    8.png

    查看实例中输出的日志,如图所示

    9.png

    在实例中查看日志

    至此,我们在 Kubernetes 集群上成功地创建了 Kubeless 服务,并顺利地体验了 Kubeless 版的 Hello World 实现。

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

  • 相关阅读:
    [JSOI2007][BZOJ1031] 字符加密Cipher|后缀数组
    leetcode Flatten Binary Tree to Linked List
    leetcode Pascal's Triangle
    leetcode Triangle
    leetcode Valid Palindrome
    leetcode Word Ladder
    leetcode Longest Consecutive Sequence
    leetcode Sum Root to Leaf Numbers
    leetcode Clone Graph
    leetcode Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/yunqishequ/p/15556078.html
Copyright © 2011-2022 走看看