Serverless 框架之Kubeless 实战-(一)安装

1. 创建命名空间,创建kubeless 控制管理容器

>kubectl create ns kubeless
#自行安装方便切换空间的kubens
>kubens kubeless
#根据官方提供的yaml ,创建Kubeless Controller Manager容器:
>kubectl create -f https://github.com/kubeless/kubeless/releases/download/v1.0.7/kubeless-non-rbac-v1.0.7.yaml
#kubless 空间下,可以查看到如下pod
>kubectl get pods
NAME                                          READY   STATUS    RESTARTS   AGE
kubeless-controller-manager-59d484f4d-5v7nv   3/3     Running   0          26m

2. 下载,配置kubeless 客户端

#我这是Mac,所以下载的Mac版本的
>wget https://github.com/kubeless/kubeless/releases/download/v1.0.7/kubeless_darwin-amd64.zip
#解压后
>cp bundles/kubeless_darwin-amd64/kubeless /usr/local/bin/

3. 小试牛刀

# 创建hello.py 文件,文件内容如下:
# 打印event事件,然后返回event的data 内容
def hello(event,context):
    print (event)
    return event['data']
#kubeless 空间下,运行一下
 >kubeless function deploy  hello --runtime python3.8 --from-file hello.py --handler hello.hello
#任务正常执行,返回如下:
INFO[0000] Deploying function...
INFO[0000] Function hello submitted for deployment
INFO[0000] Check the deployment status executing 'kubeless function ls hello'

#查看下刚跑的function 
>kubeless function ls hello -o wide
AME 	NAMESPACE	HANDLER    	RUNTIME  	TYPE	TOPIC    	DEPENDENCIES	STATUS	MEMORY               	ENV	LABEL	SCHEDULE
hello	kubeless 	hello.hello	python3.8	    	1/1 READY	            	      	created-by : kubeless
     	         	           	         	    	         	            	      	function : hello

触发验证一下:

a. 通过kubeless 命令行验证:

>kubeless function call hello --data '{"hello":"world"}'
#返回
{"hello": "world"}

b. 使用Kubeless UI来调用

    i. 先安装下kubeless UI:(https://github.com/kubeless/kubeless-ui)

#这里默认空间为kubeless
>kubectl create -f https://raw.githubusercontent.com/kubeless/kubeless-ui/master/k8s.yaml
#可以查看下状态,如下Running已经安装了
>kubectl get pods
NAME                                          READY   STATUS    RESTARTS   AGE
hello-684545b7c6-sf6sz                        1/1     Running   0          16m
kubeless-controller-manager-59d484f4d-5v7nv   3/3     Running   0          59m
ui-698c9989-tlw2b                             2/2     Running   0          80s

#看下服务,可以看到服务的虚拟IP
>kubectl get svc
NAME    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
hello   ClusterIP   10.105.236.229   <none>        8080/TCP         17m
ui      NodePort    10.111.144.93    <none>        3000:31997/TCP   2m33s

c. 使用kubectl proxy 来调用

#开启代理
>kubectl proxy --port=9999
#返回
Starting to serve on 127.0.0.1:9999
#访问看下
> curl -L --data '{"hello": "world again"}' --header "Content-Type:application/json" http://localhost:9999/api/v1/namespaces/kubeless/services/hello:8080/proxy/
#返回
{"hello": "world again"}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值