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

2021-05-09  本文已影响0人  9e8aeff1c70c

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

下面是采用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
上一篇 下一篇

猜你喜欢

热点阅读