在 Docker 桌面上启用 Kubernetes 会中断对外部服务的访问

Enabling Kubernetes on Docker Desktop breaks access to external service

我正在为 mac 使用 docker 桌面。

我已经为 Node.js 应用程序构建了一个 docker 图像,该应用程序通过 URI 连接到外部 MongoDB 数据库(数据库在 AWS 实例上 运行ning我已通过 vpn 连接)。这工作正常 - 我 运行 容器和应用程序可以连接到数据库。快乐的日子。

那么...

我在 docker 桌面上启用了 Kubernetes。我将 deployment.yml 应用到 运行 容器,但是在尝试连接到数据库时此部署失败。来自我的应用程序日志(我使用的是猫鼬):

MongooseServerSelectionError: connect EHOSTUNREACH [MY DB IP] +30005ms

有趣的是...

我现在也无法再通过 运行ning 我的 docker 容器连接到数据库。我得到同样的错误。

我必须禁用 kubernetes,重新启动 docker 桌面(两次),p运行e 我以前的容器和网络,然后重新 运行 我的容器。然后它会再次工作。

我再次启用 kubernetes 后,数据库再次变得无法访问。

知道为什么会这样 and/or 如何解决?

所以我们的问题原来是 IP 范围冲突。与这个 SO 问题中描述的完全相同:

Change Kubernetes docker-for-desktop cluster network ip

很遗憾,像这位用户一样,我们一直未能找到解决方案