Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从本地dev kubernetes集群中的pod内连接到docker compose服务的最佳便携方式_Docker_Kubernetes_Docker Compose_Cluster Computing - Fatal编程技术网

从本地dev kubernetes集群中的pod内连接到docker compose服务的最佳便携方式

从本地dev kubernetes集群中的pod内连接到docker compose服务的最佳便携方式,docker,kubernetes,docker-compose,cluster-computing,Docker,Kubernetes,Docker Compose,Cluster Computing,我正在为一个云原生应用程序建立一个本地开发环境,这个想法一旦在谷歌云上实现,我将使用云SQL(托管云服务)进行数据持久化。当我在本地开发我的应用程序时,我正在使用一个带有KinD的本地集群,并且希望我的容器能够到达集群外的几个外部服务(在本例中是PostgreSQL),我这样做是为了保持dev/prod奇偶性 我在集群旁边使用docker compose在本地运行Postgres,虽然我已经可以从我的pod容器中使用主机(我的计算机)的IP+暴露端口访问它,但这不是非常可移植的,需要每个团队成员

我正在为一个云原生应用程序建立一个本地开发环境,这个想法一旦在谷歌云上实现,我将使用云SQL(托管云服务)进行数据持久化。当我在本地开发我的应用程序时,我正在使用一个带有KinD的本地集群,并且希望我的容器能够到达集群外的几个外部服务(在本例中是PostgreSQL),我这样做是为了保持dev/prod奇偶性

我在集群旁边使用docker compose在本地运行Postgres,虽然我已经可以从我的pod容器中使用主机(我的计算机)的IP+暴露端口访问它,但这不是非常可移植的,需要每个团队成员配置其主机IP以使其本地环境正常工作。我想避免这种情况


有更好的解决办法吗?谢谢。

我可能刚刚写了一篇博文,可以帮助


它将云SQL代理作为应用程序的辅助工具运行。这样,只有部署yaml需要使用
--instances
参数进行更改,云SQL代理才能从本地Postgres实例更改为云SQL实例的连接字符串。您还需要对部署中的服务帐户文件进行排序(在博客文章中介绍),以便您拥有GKE中k8s部署的访问云SQL实例的正确权限。

在kubernetes中创建PostgreSQL部署不是一个选项吗?应用程序唯一会改变的是数据库主机。您可以为您的数据库使用服务,并使用服务dns作为您的数据库主机。@rabello我正试图在本地和prod之间保持尽可能多的奇偶校验,目前我倾向于在云中使用托管sql实例,而不是在我的k8s群集中。我已经通过基础设施管理的环境变量向我的部署提供了SQLIP,作为Pulumi的代码。我认为获取hostname-i返回的第一个IP并将其用作env值是可行的?如果是,这是最好的方法,让你的应用程序读取一个env变量,然后你可以在pod规范中定义你的
env
。这确实是一篇有趣的文章,我将其添加到书签中,但它似乎没有解决我的问题。在本地开发期间,我没有使用云SQL