通过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...