我有一个用Express
编写的API,该API连接到Mongo
容器。当我在本地启动它们时,我可以使用mongodb://${DB_HOST}:${DB_PORT}/${DB_NAME}
之类的东西并设置.env
变量来连接到mongo实例。
我要努力理解的是,一旦将其部署到GKE,我的API将如何连接到mongo容器/吊舱?
我认为它不会在本地主机上运行,所以也许我将需要使用创建的内部IP?
它实际上应该通过service
连接吗?该服务是什么样的?
我正在努力寻找关于卡住位置的文档,所以我认为我确实缺少一些明显的东西。
我是GKE
的新手,所以任何示例都将大有帮助。
答案 0 :(得分:1)
创建类型为ClusterIP的mongodb部署和mongodb服务,这基本上意味着您的api将能够在内部连接到db。如果要从外部连接数据库,请创建LoadBalancer类型的服务或其他服务类型(请参见here)
使用类型为ClusterIP的服务,假设您在name
键下给它mongodbservice
中的metadata
。然后您的api可以通过mongodb://mongodbservice:${DB_PORT}/${DB_NAME}
答案 1 :(得分:0)
您可能希望将mongodb部署为StatefulSet,以便它可以使用稳定的持久性存储。您需要为持久性存储配置一个StorageClass。然后,您需要将其公开为服务。这是kubernetes.io
上的示例如果您使用Helm(提示,请执行此操作),则容易得多。您可以使用单个命令启动并运行
helm install stable/mongodb
helm安装的输出包含一些有用的说明,用于连接到新的mongodb集群。