我有9个堆栈的生产Docker群,其中大部分都有卷。目前Docker是单节点运行的。
我必须添加第二个节点,这是问题开始的地方。特别是问题是与portainer -它变得非常滞后,几乎无法使用。而且当我移动一些容器到一个新的节点,我的项目似乎完全卡住-问题是在不同节点上的容器之间的通信。一些请求是好的,但大多数似乎是坏的。
经过一番研究,我发现问题似乎是与MTU。MTU的eth 1是1450和docker的默认值是1500。
问题是,是否有可能将Docker的MTU动态更改为1450?
我试过:
1.向dockerd添加密钥--mtu=1450 --docker服务根本没有启动
1.在docker-compose中更改主网络的mtu-似乎没有更新,我认为应该重新创建网络
1.将mtu选项添加到/etc/docker/daemon. json似乎也没有效果
如何在生产服务器上更改mtu?可能的停机时间为10-15分钟是可以的,但我不想删除所有堆栈并重新创建它们。
1条答案
按热度按时间gcmastyq1#
解决了,漫长的路...
我有vps命名为“m1”与我的docker堆栈,最后昨天我意识到,我不能更新mtu上的工作集群((
所以我添加了“m2”(作为管理者)和“m3”(作为工作者),并在“m2”+“m3”(而不是“m1”)上创建了Docker swarm集群。
1.我修改了“m2”上的
/lib/systemd/system/docker.service
,并在此处添加了--mtu=1450
:我还创建了新文件
/etc/docker/daemon.json
与{ "mtu": 1450 }
(感谢@BMitch)1.我删除了“m2”上的入口网络,并使用选项
"com.docker.network.driver.mtu": "1450"
重新创建了它1.我添加了mtu到我所有的覆盖网络在项目中(在docker-compose):
更新:这里是“m2”+“m3”的目的-我可以检查问题是否在新的集群中解决,而我的产品“m1”正在工作。我尝试了portainer,它的工作没有任何滞后,我以前见过。下一次我只会删除滞后的vps上的堆栈,更新设置(mtu)和重新部署堆栈-这将是更快!
1.我删除了“m1”中的堆栈,并将卷复制到“m2”(多亏了How to copy docker volume from one machine to another?)
1.我将服务部署到“m2”,并将域的DNS更新为“m2”ip
它的工作正常,没有滞后后,MTU更新!