我试图从Kubernetes集群内部访问Firebase数据库,我唯一想到的就是使用externalName类型的externalName服务。所以我尝试了下面的配置。
Kuberentes处:
kind : Service
apiVersion: v1
metadata :
name : firebase-database-service
labels :
app : firebase-database-service
spec:
type : ExternalName
externalName : myapp.firebaseio.com
ports:
- port : 443
targetPort: 443下面是我演示的简单节点应用程序。
var firebase = require('firebase');
var os = require("os");
var co = require('co');
var hostName = os.hostname();
var config = {
apiKey: "API_KEY",
databaseURL: "https://firebase-database-service",
};
var dashboard = firebase.initializeApp(config, 'Dashboard');
dashboard.auth().signInWithEmailAndPassword("username", "password");
let uid = hostName.split('.').join('_') + "_" + process.pid;
let ref = "/data/"+ uid;
setInterval(co.wrap(function* (){
try {
dashboard.database().ref(ref + '/loadavg').set(os.loadavg());
} catch (e) {
console.error(e);
}
}), 3000);最后我犯了下面的错误。
FIREBASE FATAL ERROR: Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com
at Error (native)
at xc (/Users/AAravindan/dev/realtime-screener/projects/test-kube-firebase/node_modules/firebase/database-node.js:55:277)
at yc (/Users/AAravindan/dev/realtime-screener/projects/test-kube-firebase/node_modules/firebase/database-node.js:57:20)
at Object.firebase.INTERNAL.registerService.Reference [as database] (/Users/AAravindan/dev/realtime-screener/projects/test-kube-firebase/node_modules/firebase/database-node.js:255:241)
at P.N (/Users/AAravindan/dev/realtime-screener/projects/test-kube-firebase/node_modules/firebase/app-node.js:18:94)
at Timeout.<anonymous> (/Users/AAravindan/dev/realtime-screener/projects/test-kube-firebase/index.js:19:19)
at next (native)
at onFulfilled (/Users/AAravindan/dev/realtime-screener/projects/test-kube-firebase/node_modules/co/index.js:65:19)
at /Users/AAravindan/dev/realtime-screener/projects/test-kube-firebase/node_modules/co/index.js:54:5
at Timeout.co (/Users/AAravindan/dev/realtime-screener/projects/test-kube-firebase/node_modules/co/index.js:50:10)有没有办法从库伯奈特斯集群进入火力基地。
如果您想看一看,这里有一个示例项目。
发布于 2016-11-11 14:58:02
目前(2016年11月8日)没有办法使用javascript。
我创建了一个bug,下面是来自firebase支持的回复。
目前,除了文字URL之外,没有办法指定JS要使用的数据库,只有形式:"https://.firebaseio.com",如错误所示。
虽然,我已经在这个问题上创建了一个bug,并已提请我们的工程师注意。如果有任何更新,我会在这个帖子上告诉你。
发布于 2016-11-11 03:38:13
尝试kubectl get services,您将得到您的服务列表
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE使用CLUSTER-IP而不是externalName
如果您仍然无法连接到您的服务,请运行kubeclt describe <service_name_above>并检查服务的入口点(如果您的ENTRYPOINT=<None>似乎没有正常运行),尝试使用入口点而不是集群-IP(不推荐)。
https://stackoverflow.com/questions/40474030
复制相似问题