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

问题描述

我正在使用适用于Mac的Docker桌面。

我为Node.js应用程序构建了一个docker映像,该映像通过URI连接到外部MongoDB数据库数据库正在通过vpn连接到的AWS实例上运行)。效果很好-我运行了容器,应用可以连接到数据库。快乐的日子。

然后...

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

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

有趣的是...

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

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

一旦我再次启用kubernetes,数据库将再次无法访问。

有任何想法为什么会这样和/或如何解决

解决方法

因此,我们发现的问题是IP范围冲突。与这个问题完全相同:

Change Kubernetes docker-for-desktop cluster network ip

不幸的是,像这个用户一样,我们无法找到解决方案