美文网首页
云原生无服务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