如何在Kubernetes中使用外部MongoDB服务
我一直在为我的工作部署设置Kubernetes集群。我将MongoDB托管在外部droplet上,并希望配置外部服务访问 我正在关注这一点。 当我使用kubectl应用我的配置时,一切似乎都运行良好 我的设置服务端点(&E)如何在Kubernetes中使用外部MongoDB服务,mongodb,typescript,kubernetes,Mongodb,Typescript,Kubernetes,我一直在为我的工作部署设置Kubernetes集群。我将MongoDB托管在外部droplet上,并希望配置外部服务访问 我正在关注这一点。 当我使用kubectl应用我的配置时,一切似乎都运行良好 我的设置服务端点(&E) kind: Service apiVersion: v1 metadata: name: mongo spec: ports: - name: mongodb port: xxxx ------ kind: Endpoints apiVersion: v1 me
kind: Service
apiVersion: v1
metadata:
name: mongo
spec:
ports:
- name: mongodb
port: xxxx
------
kind: Endpoints
apiVersion: v1
metadata:
name: mongo
subsets:
- addresses:
- ip: 159.89.x.x
ports:
- port: xxx
我正在使用typescript进行开发,这就是我目前设置DB连接的方式
const MONGO_URI = `mongodb://${config.mongourl}:${config.mongoport}/${config.collection}?authSource=admin`;
const options ={
user:`${config.mngusername}`,
pass:`${config.mngpassword}`,
keepAlive: true,
keepAliveInitialDelay: 300000,
useNewUrlParser: true,
useCreateIndex: true
}
mongoose.connect(MONGO_URI, options);
我的问题是,如何使用代码中的安装服务/部署。
谢谢使用外部服务的方法有很多,例如:
const MONGO_=“URI”mongodb://mongo/${config.collection}?authSource=admin'代码>
由于名称mongo
将映射到159.89.x.x:xxx
,您是否询问如何从集群访问服务?如果是,您只需使用服务名称:mongodb://mongo:portmongo 看起来没有定义,POD启动时总是试图使用默认MongoDB设置连接到默认,我有一个非常类似的设置,端点/服务指向外部MongoDB服务器,我就是这样做的。您可能希望通过在POD中执行一些名称查找来检查POD是否可以看到该名称。我希望它与上一个解决方案一样简单,但$mongo似乎仍然不明确您是否尝试访问$mongo
,或mongo
?使用该服务设置,mongo
应该可用。我搞错了。这是mongo,而不是$mongo。无论如何,您的应用程序是否与服务位于同一名称空间(默认)?您可以尝试改用mongo.default
。您还可以尝试使用环境变量:$MONGO\u SERVICE\u HOST和$MONGO\u SERVICE\u PORT。要调试DNS,您可以进入pod并尝试curl mongo