我想从NodeJS进程向kubeless提交一个函数(通过http触发器),但我不想使用
curl --data '{"term":"Albemarle"}' localhost:8080/api/v1/proxy/namespaces/default/services/bikesearch/ --header "Content-Type:application/json"因为这需要我知道运行该函数的服务的实际IP地址。我希望能够访问kubeless api,该api只需知道函数的名称即可提供间接访问级别
kubeless function call bikesearch --data '{"term":"Albemarle"}'有没有办法通过节点访问上面的(函数调用) api?
发布于 2017-09-04 17:02:44
kubeless还为函数创建服务,所以如果您的DNS设置正常并且您的应用程序在相同的名称空间中,那么您应该能够只对http://bikesearch:8080执行http get。如果您在其他名称空间中,则需要使用更具限定性的名称,例如bikesearch.<function-namespace>svc.cluster.local
如果希望从k8s集群外部调用该函数,则可能需要使用kubeless ingress create...创建一个入口
发布于 2017-09-04 06:41:37
如果您的集群配置正确,您也可以直接访问kubernetes域名下的Kubernetes master。
另一种方式是environment variables。Kubernetes本身注册为服务,因此可以使用KUBERNETES_SERVICE_HOST环境变量。
对于较新的Kubernetes版本,您必须进行身份验证,因此请查看how to access the API server from within a pod。
https://stackoverflow.com/questions/45990013
复制相似问题