首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分配网络资源失败

分配网络资源失败
EN

Stack Overflow用户
提问于 2020-03-26 00:53:13
回答 2查看 2.1K关注 0票数 3

Docker-CE 19.03.8集群初始化设置:1个管理器节点,仅此而已。

我们每天都会部署许多新的堆栈,有时我会看到下面这行:

代码语言:javascript
运行
复制
evel=error msg="Failed to allocate network resources for node sdlk0t6pyfb7lxa2ie3w7fdzr" error="could not find network allocator state for network qnkxurc5etd2xrkb53ry0fu59" module=node node.id=yp0u6n9c31yh3xyekondzr4jc

2至3天后。没有空闲的VIP,不能启动新的服务。我在我的日志中看到以下行:

代码语言:javascript
运行
复制
level=error msg="Could not parse VIP address  while releasing"                                                                                                                                       
level=error msg="error deallocating vip" error="invalid CIDR address: " vip.addr= vip.network=oqcsj99taftdu3b0t3nrgbgy1                                                                              
level=error msg="Event api.EventUpdateTask: Failed to get service idid0u7vjuxf2itpv8n31da57 for task 6vnc8jdkgxwxqbs3ixly2i6u4 state NEW: could not find service idid0u7vjuxf2itpv8n31da57" module=node ...
level=error msg="Event api.EventUpdateTask: Failed to get service sbjb7nk0wk31c2ayg8x898fhr for task noo21whnbwkyijnqavseirfg0 state NEW: could not find service sbjb7nk0wk31c2ayg8x898fhr" module=node ...
level=error msg="Failed to find network y73pnq85mjpn1pon38pdbtaw2 on node sdlk0t6pyfb7lxa2ie3w7fdzr" module=node node.id=yp0u6n9c31yh3xyekondzr4jc 

我们尝试使用debug模式来研究这一点。下面是一些让我感兴趣的话:

代码语言:javascript
运行
复制
level=debug msg="Remove interface veth84e7185 failed: Link not found"
level=debug msg="Remove interface veth64c3a65 failed: Link not found"
level=debug msg="Remove interface vethf1703f1 failed: Link not found"
level=debug msg="Remove interface vethe069254 failed: Link not found"
level=debug msg="Remove interface veth2b81763 failed: Link not found"
level=debug msg="Remove interface veth0bf3390 failed: Link not found"
level=debug msg="Remove interface veth2ed04cc failed: Link not found"
level=debug msg="Remove interface veth0bc27ef failed: Link not found"
level=debug msg="Remove interface veth444343f failed: Link not found"
level=debug msg="Remove interface veth036acf9 failed: Link not found"
level=debug msg="Remove interface veth62d7977 failed: Link not found"

代码语言:javascript
运行
复制
level=debug msg="Request address PoolID:10.0.0.0/24 App: ipam/default/data, ID: GlobalDefault/10.0.0.0/24, DBIndex: 0x0, Bits: 256, Unselected: 60, Sequence: (0xf7dfeeee, 1)->(0xedddddb7, 1)->(0x77777777, 3)->(0x77777775, 1)->(0x77ffffff, 1)->(0xffd55555, 1)->end Curr:233 Serial:true PrefAddress:<

当未选中的部分变为0时,不能部署新的容器。他们被困在新的状态中。

有没有人用过这样的东西?还是有人能帮我?我们认为,这个问题与10.0.0.0/24 (我们的入口)地址的释放有关。

EN

Stack Overflow用户

发布于 2021-05-07 19:54:07

如果你看到你的容器处于新的状态,你的容器可能会受到这个问题的影响:cintiadr报道的https://github.com/moby/moby/issues/37338

Docker堆栈无法在覆盖网络上分配IP,并卡在新的当前状态#37338

再现它的

创建一个集群(1个管理者,1个工作者)。我创建了AWS t2大型Amazon linux实例,并使用他们的文档(版本18.06.1-c.)安装了docker。从堆栈(docker-network.yml) $ ./ Deploy -network.sh部署新的覆盖网络从堆栈(docker-network.yml) $./deploy-network.sh部署60个连接到该网络的相同服务-每个服务3个副本-从堆栈(docker-network.yml)$ ./deploy-services.sh您可以验证所有服务是否正常运行。

现在让我们把工人放下来。

运行:

docker节点更新--可用性排出& docker节点rm --force

注意:排出是一个异步操作(我没有意识到这一点),所以要重现这个用例,您不应该等待排出完成

创建一个新的worker (完全新的节点/机器),并加入集群。您将看到实际能够启动的服务非常少。由于没有可用的IP,所有其他内容都将不断被拒绝。

在过去的版本(我相信是17个)中,容器不会被拒绝(而是卡在新的版本中)。

如何避免这个问题?

如果您排空并耐心地等待所有容器终止,然后再移除节点,则似乎完全避免了此问题。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60853543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档