gpt4 book ai didi

docker - 当我的堆栈上的内存少于256个限制时,为什么会发生Docker IP耗尽?

转载 作者:行者123 更新时间:2023-12-02 18:05:58 25 4
gpt4 key购买 nike

我有一个群集,目前在我的堆栈上运行着135个容器,这已经从156个减少了,因为IP耗尽一直存在问题,但是由于子网配置为/ 24,理论上应该有100个IP可用使用。进行docker系统修剪-所有docker节点上的所有对象都没有收回要使用的任何可用IP。

在一个实例中,一个Docker节点之一由于内存问题和IP耗尽而关闭,某些服务的容器无法恢复在线。必须将节点从群集中删除,并且我必须删除/ var / lib / docker / swarm的内容才能将节点重新加入群集。在完成此应用程序之后,我便可以将IP分配给该节点。

IP分配如何与docker堆栈一起使用,是否有办法检查分配给容器的IP,以及IP耗尽的距离有多远?当我将节点重新添加到群集后,我没想到它会解决IP耗尽问题。

docker 版本:

Client:
Version: 18.03.1-ce
API version: 1.37
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:17:20 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm

Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:15:30 2018
OS/Arch: linux/amd64
Experimental: false


Ubuntu版本:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.4 LTS
Release: 16.04
Codename: xenial

最佳答案

我可以提供一种解决方法:

创建更大的网络:

docker network create --driver overlay --subnet=192.168.0.0/16 new_net

更新您的 stack:
docker service update MYSERVICE --network-rm old_net --network-add new_net

如果您确实不喜欢 IPs,那么应该在 daemon日志中看到类似以下内容:

level=error msg="task allocation failure" error="failed to allocate network IP for task taskid network networkid : could not find an available IP" module=node level=error msg="Failed to allocate network resources for node nodeid" error="could not find an available IP" module=node node.id=nodeid



我认为 docker需要一些时间来租用未使用的 IPs,因此使用较大的网络将对此有所帮助。

关于docker - 当我的堆栈上的内存少于256个限制时,为什么会发生Docker IP耗尽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57992086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com