2017-08-31 37 views
1

調用我想從一個的NodeJS程序中提交一個功能(通過HTTP觸發),以kubeless,但我不希望使用的使本地Kubeless通過REST

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

的JavaScript等效的,因爲這需要我知道運行該功能的服務的實際IP地址。我希望能夠訪問kubeless API,讓我間接的通過僅僅知道函數

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

名反正是有通過節點訪問上述(函數調用)API的級別?

回答

0

如果爲您的集羣正確配置了DNS,您還可以直接訪問kubernetes DNS名稱下的Kubernetes主服務器。

另一種方式是environment variables。 Kubernetes本身已註冊爲服務,因此您可以使用KUBERNETES_SERVICE_HOST環境變量。

對於較新的Kubernetes版本,您必須進行身份驗證,因此請查看how to access the API server from within a pod

0

kubeless也爲函數創建服務,因此如果您的DNS設置正在運行並且您的應用程序位於相同的名稱空間中,那麼您應該能夠僅通過http獲取http://bikesearch:8080。如果您在另一個命名空間中,則需要使用更多限定名稱,例如bikesearch.<function-namespace>svc.cluster.local

如果你想打電話從K8S集羣外的函數,你可能要與創建入口kubeless ingress create...