Kubeless 函数调用错误



我在使用 kubeless 调用函数时遇到问题。 这是函数规范

---
apiVersion: kubeless.io/v1beta1
kind: Function
metadata:
name: smk
namespace: smktest
spec:
handler: hello.handler
runtime: python2.7
function: |
import json
def handler():
return "hello world"
deployment:
spec:
template:
spec:
containers:
- env:
- name: FOO
value: bar
name: "smk-deployment"
resources:
limits:
cpu: 100m
memory: 100Mi
requests:
cpu: 100m
memory: 100Mi

当我尝试调用如下函数时,

kubeless function call smk 

我得到

FATA[0000] Unable to find the service for smk

两部分问题

  1. 如何将函数公开为服务
  2. 如何指定此函数所需的环境变量? 谢谢

更新运行 kubeless 函数 ls --namespace=smktest 产生如下结果

NAME    NAMESPACE   HANDLER         RUNTIME     DEPENDENCIES    STATUS
smk     smktest     hello.handler   python2.7                   MISSING: Check controller logs

接下来我尝试kubectl logs -n kubeless -l kubeless=controller有大量的错误日志,但我没有看到特定于此功能的任何内容

当我尝试调用如下函数时,

kubeless function call smk

我得到

FATA[0000] Unable to find the service for smk

跑步kubeless function ls --namespace=smktest

那么当然,您还需要在调用命令中包含--namespace=smktest

kubeless function call --namespace=smktest smk 

如何指定此函数所需的环境变量?谢谢

据我所知,似乎有两种方法在使用中:

  • 提供一个Deployment模板,function controller似乎合并了该模板,但据我所知,Deployment中需要container: image:模板,因此您必须指定一个模板才能访问其env:声明
  • 否则,"作弊"并使用PodServiceAccount令牌手动请求群集资源,其中可能包括ConfigMapSecret,甚至解析您自己的kubeless.io/function清单并从其注释或类似内容中提取某些内容

最新更新