多主机docker由数据库的静态内部IP组成



我已经为此斗争了三个多星期。我试过很多教程,但没有一个对我有用

基本上,我有超过10台运行Ubuntu+docker的服务器。

其中一些可以通过内部IP访问,一些可以通过公共IP访问。

我已经使用VPN连接了所有位置。

它们都可以通过10.0.0.0/8 相互联系

现在我已经尝试在每个服务器上创建MySQL数据库(请不要问为什么,因为这是需求的一部分,不会改变(。

其中一些将成为大师,一些将成为奴隶。

服务器A可以承载4个主数据库和3个从数据库(全部互连(。

基本上,我想创建一个具有静态内部IP的MySQL服务器(通过虚拟IP公开端口已经完成,但静态内部IP是需求的一部分,无论如何都不会改变(。

不幸的是,我试图创建虚拟接口即在每台服务器上(每台服务器只有一个带有暴露端口的ip(10.0.4.110.0.4.2

然后我创建了一个网络sqlnet
docker network create--subnet=10.0.0.0/16 sqlnet

不幸的是,由于某种原因,具有内部IP的服务器在那之后只是与网络断开连接(我可以使用10.0.5.0或类似的东西(,我不得不使用ILO来删除网络。

老实说,我好像做错了什么。大多数教程都是无用的,因为它们都需要额外的知识(我唯一的知识是使用dotnet构建并将其部署在linux上,由于MS SQL的成本,我们必须检查MySQL是否是可靠的选项(。

基本上,我想创建docker-compose(试图使用堆栈,但由于网络或接口超出范围等原因,遇到了很多不同的问题(,它将部署MySQL,并将其公开以复制到同一VPN网络中的其他服务器。

有人知道怎么做吗????对一些人来说,内部IP简直是人间地狱(使用-p IP:port对其他web应用程序/web api很好,但这些应用程序不需要静态内部IP(。

因此,通过在Docker主机上创建新接口解决了问题

10.0.4.1,

然后在Docker中撰写端口:-"10.0.4.1:4000:3306">

通过使用它,接口10.0.0.1可以通过整个子网10.0.0.0/8访问,所有设备都可以看到docker容器,因为它将是一个单独的服务器。

最新更新