通过REST进行原生Kubeless调用

我想提交一个函数(通过HTTP触发器)从一个NodeJS进程kubeless,但我不想使用JavaScript等效

curl --data '{"term":"Albemarle"}' localhost:8080/api/v1/proxy/namespaces/default/services/bikesearch/ --header "Content-Type:application/json" 

因为这需要我知道运行该function的服务的实际IP地址。 我希望能够通过知道函数的名称来访问kubeless api,从而给我提供了间接的级别

 kubeless function call bikesearch --data '{"term":"Albemarle"}' 

有无论如何通过节点访问上述(函数调用)API?

如果为群集正确configuration了DNS,则也可以使用kubernetes DNS名称直接访问Kubernetes master。

另一种方式是环境variables 。 Kubernetes本身被注册为一个服务,所以你可以使用KUBERNETES_SERVICE_HOST环境variables。

对于较新的Kubernetes版本,您必须进行身份validation,所以请查看如何从一个pod中访问API服务器 。

kubeless也为函数创build服务,所以如果您的DNS设置正在运行,并且您的应用程序位于相同的命名空间中,那么您应该只需要http http://bikesearch:8080 。 如果你在另一个命名空间,你需要使用一个更合适的名字,比如bikesearch.<function-namespace>svc.cluster.local

如果你想从k8s集群外部调用这个函数,你可能想创build一个无kubeless ingress create... Ingress kubeless ingress create...