美文网首页
云原生无服务serverless实战,k3s部署kubeless

云原生无服务serverless实战,k3s部署kubeless

作者: 9e8aeff1c70c | 来源:发表于2021-05-09 05:50 被阅读0次

    serverless实战
    本文介绍如何使用k3s来部署kubeless
    有好几种部署模式 (non-rbac, rbac and openshift)

    • kubeless-$RELEASE.yaml 是 RBAC Kubernetes 集群.
    • kubeless-non-rbac-$RELEASE.yaml 是 non-RBAC Kubernetes 集群.
    • kubeless-openshift-$RELEASE.yaml 是 OpenShift (1.5+).

    下面是采用rbac方式来部署的

    首先会找到最新的kubeless的版本,设置成变量RELEASE
    其次闯将一个命名空间叫kubeless
    然后把kubeless部署到同名的命名空间

    $ export RELEASE=$(curl -s https://api.github.com/repos/kubeless/kubeless/releases/latest | grep tag_name | cut -d '"' -f 4)
    $ kubectl create ns kubeless
    $ kubectl create -f https://github.com/kubeless/kubeless/releases/download/$RELEASE/kubeless-$RELEASE.yaml
    
    $ kubectl get pods -n kubeless
    NAME                                           READY     STATUS    RESTARTS   AGE
    kubeless-controller-manager-567dcb6c48-ssx8x   1/1       Running   0          1h
    
    $ kubectl get deployment -n kubeless
    NAME                          DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    kubeless-controller-manager   1         1         1            1           1h
    
    $ kubectl get customresourcedefinition
    NAME                          AGE
    cronjobtriggers.kubeless.io   1h
    functions.kubeless.io         1h
    httptriggers.kubeless.io      1h
    

    接下来,我们安装kubeless命令行工具

    kubeless命令行工具用来部署函数,调用函数
    linux和mac

    export OS=$(uname -s| tr '[:upper:]' '[:lower:]')
    curl -OL https://github.com/kubeless/kubeless/releases/download/$RELEASE/kubeless_$OS-amd64.zip && \
      unzip kubeless_$OS-amd64.zip && \
      sudo mv bundles/kubeless_$OS-amd64/kubeless /usr/local/bin/
    

    接下来我们部署一个java函数

    package io.kubeless;
    
    import io.kubeless.Event;
    import io.kubeless.Context;
    
    public class Foo {
        public String foo(io.kubeless.Event event, io.kubeless.Context context) {
            return "Hello world!";
        }
    }
    

    保存为Foo.java
    部署这个函数,首次部署时间比较长
    下面这个命令的意思是我们部署了一个叫get-java的函数
    运行时是java1.8,处理器是Foo.foo,来自java文件

      kubeless function deploy get-java --runtime java1.8 --handler Foo.foo --from-file Foo.java
    

    查看部署进度,可以使用下面的命令

    kubeless function ls get-java
    

    调用这个函数

    kubeless function call get-java
    

    输出
    hello world

    删除这个函数可以使用下面的命令

    kubeless function delete get-java
    

    创建http trigger

    kubeless trigger http create get-java --function-name get-java --path get-java --hostname fn.taihu.org --gateway traefik
    

    然后我们可以通过浏览器来访问
    http://fn.taihu.org/get-java

    image.png

    相关文章

      网友评论

          本文标题:云原生无服务serverless实战,k3s部署kubeless

          本文链接:https://www.haomeiwen.com/subject/mmfudltx.html