访问Kubernetes的Mongodb

问题描述 投票:7回答:3

我根据Kubernetes tutorial创建了Mongodb服务。

现在我的问题是如何通过像Robomongo或类似客户端这样的客户端访问数据库本身?仅用于备份或浏览已输入的数据。

mongo-pod和服务只有一个内部端点和一个mount。

有没有办法安全地访问没有公共端点的此实例?

内部URI是mongo:27***

mongodb mean-stack kubernetes
3个回答
8
投票

您可以使用kubectl port-forward mypod 27017:27017然后将您的mongodb客户端连接到localhost:27017

如果要停止,只需在同一cmd窗口中点击Ctrl+C即可停止该过程。


5
投票

kubernetes命令行工具提供了@ainlolcat声明的此功能

kubectl get pods

检索当前正在运行的pod名称,并使用:

kubectl exec -i mongo-controller-* bash

你得到一个基本的bash,让你执行

mongo

进入数据库以创建转储,等等。 bash是非常基本的,没有完成等功能。我没有找到更好的shell的解决方案,但它完成了这项工作


3
投票

当你在kubernetes中创建一个服务时,你会给它一个名字,例如“mymongo”。创建服务后

kubernetes的DNS服务(默认情况下已启用)将确保任何pod只能通过其名称发现此servixe。所以你可以设置你的uri

uri: mongodb://**mymongo**:27017/mong

此外,服务IP和端口将在运行的pod中设置为环境变量。

MYMONGO_SERVICE_HOST

MYMONGO_SERVICE_PORT

事实上我写了一篇博客,展示了一个带有nodejs web服务器和mongo的应用程序的分步示例,可以进一步解释

http://codefresh.io/blog/kubernetes-snowboarding-everything-intro-kubernetes/

反馈欢迎!

© www.soinside.com 2019 - 2024. All rights reserved.